请求修正Python去重代码:提取文件不重复单词并输出排序结果
代码修正说明
原代码存在几个问题:
- 缩进错误:内层代码块的缩进不符合Python语法规范,会导致运行报错
- 列表拼接错误:
list_distinct = list_distinct + word中,word是字符串类型,不能直接和列表拼接,应该用append()方法添加单个元素,或者用+ [word]的方式 - 缺少排序步骤:没有按照需求对最终的去重列表进行排序
- 文件处理不规范:未使用上下文管理器自动关闭文件,可能导致资源泄漏
修正后的代码:
# 使用with语句自动管理文件资源 with open("romeo.txt") as file1: list_distinct = [] for line in file1: words = line.split() for word in words: # 检查单词是否已存在,不存在则添加 if word not in list_distinct: list_distinct.append(word) # 对去重后的列表排序并输出 print(sorted(list_distinct))
补充说明
- 使用
with语句打开文件,无需手动调用close(),程序会在代码块结束后自动关闭文件 - 直接遍历每行的单词,跳过已存在的单词,用
append()方法向列表添加元素,避免类型错误 - 最后用
sorted()函数对去重后的列表进行排序,返回新的排序后的列表并打印
内容的提问来源于stack exchange,提问作者Mayur Dhandarphale
相关产品推荐
相关产品推荐

