用于循环和多个条件

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循环中使用多个条件.

谢谢.

Joh*_*ooy 5

>>> 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)