Skip to main content
 首页 » 编程设计

python之从列表句子中删除长度 3 的单词

2025年05月04日23虾米姐

我有一个包含如下句子的输入文件:

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]