Python求english.txt与french.txt共同单词问题求助
解决两个文本文件找共同单词的问题
嘿,我来帮你搞定这个问题!你的代码目前只读取了english.txt,完全没处理french.txt,而且只是直接打印文件内容,没有做共同单词的计算,所以才会得到分行的结果。下面是完整的解决方案:
步骤说明
- 读取两个文件的内容,将每个文件的单词转换成集合(集合的交集操作能快速定位共同元素)
- 计算两个集合的交集,得到共同单词
- 将交集的单词用空格连接,输出成你期望的格式
完整代码
# 读取english.txt并提取单词集合 with open("english.txt", "r") as english_file: english_words = set(english_file.read().split()) # 读取french.txt并提取单词集合 with open("french.txt", "r") as french_file: french_words = set(french_file.read().split()) # 计算共同单词的交集 common_words = english_words.intersection(french_words) # 将集合转成空格分隔的字符串并输出 print(' '.join(common_words))
代码解释
- 使用
with语句打开文件:这是Python中推荐的文件操作方式,会自动帮你关闭文件,避免资源泄漏 read().split():把文件内容全部读出来后,按空格(包括换行符)分割成单词列表,再转成集合intersection()方法:等价于&运算符,用来获取两个集合的共同元素' '.join(common_words):把集合中的单词用空格连接成字符串,符合你期望的输出格式
运行这段代码后,就能得到你想要的结果:competition table(注:集合是无序的,如果输出顺序和期望略有不同,可以对common_words做排序,比如' '.join(sorted(common_words)))
内容的提问来源于stack exchange,提问作者Damian Donovan
相关产品推荐
相关产品推荐

