Python 了解列表迭代是如何工作的

Python 了解列表迭代是如何工作的,python,python-3.x,Python,Python 3.x,myList:printyes中的if项是否与myList:if i==item:printyes中的i相同?如果没有,它是如何工作的?我认为第一种方法更快。有人能解释吗?第一个隐式遍历列表,第二个显式遍历列表,这是一个区别。另一个区别是,在for的情况下,除非您中断,否则它将继续迭代。第一种方法的速度更快,因为它是在Python的本机C代码中完成的,尽管对于n个长度的列表,它需要遍历最多n个比较的列表。第二个输出不相同,但如果更改为: myList = [1,2,3] item = 2 if

myList:printyes中的if项是否与myList:if i==item:printyes中的i相同?如果没有,它是如何工作的?我认为第一种方法更快。有人能解释吗?

第一个隐式遍历列表,第二个显式遍历列表,这是一个区别。另一个区别是,在for的情况下,除非您中断,否则它将继续迭代。

第一种方法的速度更快,因为它是在Python的本机C代码中完成的,尽管对于n个长度的列表,它需要遍历最多n个比较的列表。第二个输出不相同,但如果更改为:

myList = [1,2,3]
item = 2
if item in myList:
    print("yes")
否则,您的代码将在列表中找到匹配项时打印“是”


理想情况下,也应避免在列表上进行查询。通常情况下,在查询字典的集合和键时,集合或字典是一种方法,尤其是当项目的数量可以任意调整时,这一点尤为重要。

是的,它们是等效的。in操作符更快,因为迭代是由Python解释器在内部完成的。
for i in myList:
  if i == item: print("yes"); break