Skip to main content
 首页 » 编程设计

python之列表成员测试或集合

2025年05月04日23tintown

在添加之前检查一个项目是否已经在列表中是否更有效:

for word in open('book.txt','r').read().split(): 
if word in list: 
    pass 
else: 
    list.append(item) 

或者添加所有内容然后在其上运行 set()?像这样:

for word in open('book.txt','r').read().split(): 
    list.append(word) 
list = set(list) 

请您参考如下方法:

如果最终目的是构造一个集合,直接构造它,不要理会列表:

words = set(open('book.txt','r').read().split()) 

这将是简单而高效的。

就像您的原始代码一样,这具有首先将整个文件读入内存的缺点。如果这是一个问题,可以通过一次读取一行来解决:

words = set(word for line in open('book.txt', 'r') for word in line.split()) 

(感谢@Steve Jessop 的建议。)

绝对不要在您的问题中采用第一种方法,除非您知道列表很短,因为它需要扫描整个列表中的每个单词。