poc*_*coa 8 python loops conditional-statements
在C++中,可以说:
for (int i = 0; i < 100 && !found; i++) {
if (items[i] == "the one I'm looking for")
found = true;
}
Run Code Online (Sandbox Code Playgroud)
所以你不需要使用"break"语句.
在Python中,我想你需要写:
found = False
for item in items:
if item == "the one I'm looking for"
found = True
break
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写一个具有相同代码的生成器,所以我可以隐藏这个破坏的东西.但我想知道是否有任何其他方法可以实现相同的功能(具有相同的性能),而无需使用额外的变量或while循环.
我知道我们可以说:
found = "the one I'm looking for" in items
Run Code Online (Sandbox Code Playgroud)
我只是想了解是否可以在for循环中使用多个条件.
谢谢.
>>> from itertools import dropwhile
>>> try:
... item = next(dropwhile(lambda x: x!="the one I'm looking for", items))
... found = True
... except:
... found = False
Run Code Online (Sandbox Code Playgroud)
当然你也可以在没有lambda函数的情况下编写这个
>>> from itertools import dropwhile
>>> try:
... item = next(dropwhile("the one I'm looking for".__ne__, items))
... found = True
... except:
... found = False
Run Code Online (Sandbox Code Playgroud)
现在它在我看来它是使用额外变量的C版本
如果你真的只需要找到的变量集(并且不需要知道该项),那么只需使用
found = any(item=="the one I'm looking for" for item in items)
Run Code Online (Sandbox Code Playgroud)