给定以下代码:
numbers= [1,2,3,1,2,4,5]
if 5 in numbers:
.................
我们可以注意到我们有一个包含 7 个项目的列表(numbers),我想知道幕后的关键字 in 是否执行循环以在中找到匹配项名单
请您参考如下方法:
这取决于。它将在容器类(右侧)上调用 __contains__() - 可以作为循环实现,对于某些类,如果可能,可以通过其他一些更快的方法计算。
你甚至可以在你自己的类中定义它,就像这个说明性的例子:
class ContainsEverything:
def __contains__(self, item):
return True
c = ContainsEverything()
>>> None in c
True
>>> 4 in c
True
