Python“in”运算符,带有“for”循环和“if”语句

2024-06-02 07:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用pythonin操作符和for循环和withif语句。我的问题是中是如何实现的,在这两种情况下它的行为是不同的:它在使用for循环时迭代,在使用withif语句时检查是否存在某些元素?这是否取决于forif的实现?在

    for i in x:
        #iterates

    if i in x:
        #checks weather i in x or not 

Tags: orin元素forifnot情况语句
3条回答

使用in进行的成员身份测试是通过__contains__方法实现的(参见Documentation)。不同的行为来自于前面的关键字,for和{}。在

使用for实现迭代,只要关键字for后面的条件为真,就会调用方法next,并将其返回值写入迭代变量。会员资格测试一般只是一个条件。在

编码

A in B

执行

^{pr2}$

编码

for A in B :
    # Body

执行

A = B.next()
if B.__contains__(A) :
    # Body

A = B.next()
if B.__contains__(A) :
    # Body

# ...

A = B.next()
if B.__contains__(A) :
    # B.next() throws "StopIteration" if there is no more element

python中的关键字“in”基于“for”和“if”解决了不同的用途。请看this related link in stack overflow以获得更清楚的说明

原因是for...in与{}不同。在

for x in y迭代y。在

if x in y调用y.__contains__(x)。在

相关问题 更多 >