编写uniqueWords函数:统计每行不同单词数并写入输出文件
嘿,这需求不难搞,我给你写个Python版本的uniqueWords函数,刚好能完美满足你的要求:
完整代码实现
def uniqueWords(inFile, outFile): # 用with语句安全处理文件读写,自动关闭文件 with open(inFile, 'r') as input_file, open(outFile, 'w') as output_file: # 逐行遍历输入文件 for line in input_file: # 清理行首尾空白,按空白分割成单词列表 words = line.strip().split() # 集合自动去重,长度就是唯一单词数 unique_word_count = len(set(words)) # 把结果写入输出文件对应行 output_file.write(f"{unique_word_count}\n")
关键细节说明
- 文件安全处理:用
with上下文管理器打开文件,不用手动调用close(),能避免因为异常导致的文件资源泄漏,这是Python里处理文件的最佳实践。 - 适配空白字符:
split()默认会把任意连续的空白字符(空格、制表符、换行符等)当作分隔符,完全匹配你说的“文件仅包含小写字母和空白字符”的场景。 - 高效去重:把单词列表转成集合是最简洁高效的去重方式,集合的底层实现让去重操作的时间复杂度很低,处理大文件也没问题。
测试示例
假设你的输入文件sample_input.txt内容是:
hi hi hello apple banana apple cherry test
调用uniqueWords("sample_input.txt", "sample_output.txt")之后,输出文件sample_output.txt的内容会是:
2 3 1
如果输出文件原本不存在,函数会自动创建它;如果已经存在,会被覆盖(要是你需要追加内容而不是覆盖,把open(outFile, 'w')改成open(outFile, 'a')就行)。
内容的提问来源于stack exchange,提问作者user7863457
相关产品推荐
相关产品推荐

