You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python提取任意文本文档的无重复单词列表?

帮你搞定无重复单词列表的问题!

嘿,作为Python新手遇到这种小问题太正常啦,我来帮你捋捋代码里的问题,再给你修正后的版本~

首先看看你代码里的几个明显问题:

  • 列表推导式写错啦:[word for wordd]这种写法完全不符合Python的语法,你得告诉程序要遍历什么对象来取单词呀
  • 没有把读取的文本拆成单词:你只是把整个文本读进来了,但没把它分割成单个的单词,程序根本不知道哪些是“单词”
  • 没调用函数:你定义了MakeWordList函数,但没执行它,所以运行后自然看不到任何效果

基础修正版(快速实现去重)

先给你一个最基础的可运行版本,能实现你要的无重复单词列表:

def MakeWordList():
    with open('text.txt', 'r') as f:
        data = f.read()
        # 按空白字符(空格、换行等)把文本分割成单词列表
        words = data.split()
        # 用集合自动去重,再转回列表(如果需要列表格式的话)
        unique_words = list(set(words))
        return unique_words

# 一定要调用函数才能看到结果哦!
result = MakeWordList()
print(result)

进阶优化版(保留顺序+处理标点大小写)

上面的版本会打乱单词的原始顺序,而且如果文本里有标点(比如hello,和hello)、大小写差异(Hello和hello),会被当成不同的单词。这个优化版能解决这些问题:

import string

def MakeWordList():
    with open('text.txt', 'r') as f:
        data = f.read()
        # 移除所有标点符号
        translator = str.maketrans('', '', string.punctuation)
        cleaned_text = data.translate(translator)
        # 转成小写,避免大小写导致的重复
        words = cleaned_text.lower().split()
        # 用字典键的特性保留单词的原始顺序同时去重(Python3.7+可用)
        unique_words = list(dict.fromkeys(words))
        return unique_words

result = MakeWordList()
print(result)

你可以根据自己的需求选版本,运行前记得确保text.txt和你的Python脚本在同一个文件夹里哦!

内容的提问来源于stack exchange,提问作者James Shockley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:24:29