我很好奇,知道Python更快

说我有一个清单

myList = ['a', 'b', 'c', 'd', 'e']


我有两种检查项目是否在列表中的方法。

if item in myList:
    # doSomthing()


要么

for element in myList:
    if element == item:
        # doSomething()


我知道第一种方法更像“ pythonic”,但在性能方面有区别吗?

最佳答案

在jupyter Notebook中进行测试,第一个选项对于字符串搜索而言明显更快:

设置(来自this question):

rndm=''.join(choices(string.ascii_uppercase + string.digits, k=100000))


测试:

%timeit 'a' in rndm
26.2 µs ± 485 ns per loop

%%timeit
for let in rndm:
    if let=='a':
        break
2.42 ms ± 73.7 µs per loop


注意:即使我们从set()中创建一个rndm并计时,它仍然只会出现在1.14 ms ± 26.9 µs per loop

09-10 01:35