有人告诉我,在成员资格测试方面,Python 集合比列表更快。
尽管如此,timeit表明对于大量值列表实际上更快。
对于具有更多重复的较小集合,差异更小甚至相反,但是集合仍然没有显着优势(我猜性能问题对于非常大的数据集更为重要,不是吗?)
如何解释这些数据?
>>> import timeit
>>> # Few repetitions on a bigger set:
>>> timeit.timeit('10000 in set(range(10000000))', number=10)
9.265543753999737
>>> timeit.timeit('10000 in list(range(10000000))', number=10)
4.788996731000225
>>> # More repetitions on a smaller set:
>>> timeit.timeit('10000 in set(range(10000))', number=100000)
32.068307194000226
>>> timeit.timeit('10000 in list(range(10000))', number=100000)
32.45919990500079
Run Code Online (Sandbox Code Playgroud)