2024-06-02 07:27:35 发布
网友
我在使用pythonin操作符和for循环和withif语句。我的问题是在中是如何实现的,在这两种情况下它的行为是不同的:它在使用for循环时迭代,在使用withif语句时检查是否存在某些元素?这是否取决于for和if的实现?在
for i in x: #iterates if i in x: #checks weather i in x or not
使用in进行的成员身份测试是通过__contains__方法实现的(参见Documentation)。不同的行为来自于前面的关键字,for和{}。在
in
__contains__
for
使用for实现迭代,只要关键字for后面的条件为真,就会调用方法next,并将其返回值写入迭代变量。会员资格测试一般只是一个条件。在
next
编码
A in B
执行
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...in
for x in y迭代y。在
for x in y
y
if x in y调用y.__contains__(x)。在
if x in y
y.__contains__(x)
使用}。在
in
进行的成员身份测试是通过__contains__
方法实现的(参见Documentation)。不同的行为来自于前面的关键字,for
和{使用
for
实现迭代,只要关键字for
后面的条件为真,就会调用方法next
,并将其返回值写入迭代变量。会员资格测试一般只是一个条件。在编码
执行
^{pr2}$编码
执行
python中的关键字“in”基于“for”和“if”解决了不同的用途。请看this related link in stack overflow以获得更清楚的说明
原因是}不同。在
for...in
与{for x in y
迭代y
。在if x in y
调用y.__contains__(x)
。在相关问题 更多 >
编程相关推荐