我知道 in 运算符可以在 Python 中用作以下内容的简写(一般来说,不考虑任何隐藏的相等性问题或任何问题):
for item in list1:
if item == thingToCheck:
return True
return False
但是,我想知道 in 在实际 for item in list1 行中的技术含义 - 显然 in,因为 Python 不会生成 item 的每个可能值并查看 item in list1。在相关说明中,Python for 循环是否曾经在没有 in 的情况下进行过?
请您参考如下方法:
in 调用 __contains__ 方法(在本例中为 list)
对于 list 和 tuple 这是线性搜索
对于 dict 和 set 它使用哈希
在 for 循环中使用时,in 仅表示从 iterable 中取出下一项,直到用完。
你可以想象它是这样的
it = iter(list1)
while True:
try:
item = next(it)
except StopIteration:
break
if item == thingToCheck:
return True
return False
