Skip to main content
 首页 » 编程设计

python之Python 的 `in` 循环中 `for` 的正式解释

2025年05月04日25shangdawei

我知道 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