【发布时间】:2012-01-12 09:27:10
【问题描述】:
所以我在 python 中的列表中有一个数字列表,如下所示:
[1,89,1221,1919,1920,10210,...] 有数千个数字,我想检查变量 i 是否在其中。
我是这样做的:
if i in mylist:
但这是最快的方法吗?
一些进一步的规格:
- 列表中没有重复项
- 列表只包含整数
- 如果可以提高性能,可以对列表进行排序
- 列表实际上可以是一个集合(所以没有重复)
- 列表可以是任何类型的集合
【问题讨论】:
-
数字集/列表的大小是否固定?
-
不,它可能会有所不同,尽管对固定号码列表的见解也是受欢迎的。
-
转换为一个集合是一个相对昂贵的操作,但
i in mylist也很昂贵。如果您在同一个列表中多次这样做,最好使用一组 -
你试过
x in some_set和x in some_list使用timeit了吗?用timeit测量后,你学到了什么?可以发一下结果吗?
标签: python performance list set