如果在列表中vs循环中(性能)

时间:2018-10-22 17:53:08

标签: python performance

我很想知道Python中有什么更快的

说我有一个列表

<!-- Create a paragraph with id mydata -->
<div id="box">
  <p id="mydata"> Todays Date</p>
  <p> <button onclick="myFunction();"> Click </button></p>
</div>

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

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

if item in myList:
    # doSomthing()

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

1 个答案:

答案 0 :(得分:4)

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

设置(来自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