gpt4 book ai didi

python获取非重复项-最快的方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:28 24 4
gpt4 key购买 nike

我正在搜索 python 列表中不重复的项目。我目前的做法是,

python -mtimeit -s'l=[1,2,3,4,5,6,7,8,9]*99' '[x for x in l if l.count(x) == 1]'
100 loops, best of 3: 12.9 msec per loop

有没有可能做得更快?

这是输出。

>>> l = [1,2,3,4,5,6,7,8,9]*99+[10,11]
>>> [x for x in l if l.count(x) == 1]
[10, 11]

最佳答案

您可以使用 the Counter class来自集合:

from collections import Counter
...
[item for item, count in Counter(l).items() if count == 1]

我的结果:

$ python -m timeit -s 'from collections import Counter; l = [1, 2, 3, 4, 5, 6, 7, 8, 9] * 99' '[item for item, count in Counter(l).items() if count == 1]'
1000 loops, best of 3: 366 usec per loop
$ python -mtimeit -s'l=[1,2,3,4,5,6,7,8,9]*99' '[x for x in l if l.count(x) == 1]'
10 loops, best of 3: 23.4 msec per loop

关于python获取非重复项-最快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937057/

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