我有一个包含如下句子的输入文件:
I like apples
My mother is called Anna.
我将这些句子转移到一个列表中,然后我想删除长度 < 3 的单词。
我已经试过了:
with open("fis.txt", "r", encoding="utf8") as f:
lst = [w.lower() for w in f.readlines() if len(w) >= 3]
print(lst)
但它给了我['我喜欢苹果','我妈妈叫安娜。']
我想获得['like apples', 'mother called anna.']
这里似乎有什么问题?
请您参考如下方法:
f.readlines() 给你一个列表,其中有两个项目对应于文件的两行。
您需要遍历行(无需先将它们读入内存,遍历 f 即可),拆分每一行,然后过滤单词。
with open("fis.txt", "r", encoding="utf8") as f:
lst = [' '.join(w.lower() for w in line.split() if len(w) >= 3) for line in f]
