gpt4 book ai didi

python - 过滤在非常大的列表中只出现一次的项目

转载 作者:太空狗 更新时间:2023-10-29 22:05:05 26 4
gpt4 key购买 nike

我有一个很大的列表(超过 1,000,000 个项目),其中包含英文单词:

tokens = ["today", "good", "computer", "people", "good", ... ]

我想获取列表中只出现一次的所有项目

现在我正在使用:

tokens_once = set(word for word in set(tokens) if tokens.count(word) == 1)

但是真的很慢。我怎样才能让它更快?

最佳答案

您遍历一个列表,然后对每个元素重复一次,这使得它成为 O(N²)。如果您将 count 替换为 Counter,您将遍历列表一次,然后再次遍历唯一元素列表,在最坏的情况下,O (2N),即 O(N)。

from collections import Counter

tokens = ["today", "good", "computer", "people", "good"]
single_tokens = [k for k, v in Counter(tokens).iteritems() if v == 1 ]
# single_tokens == ['today', 'computer', 'people']

关于python - 过滤在非常大的列表中只出现一次的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com