使用for循环检查`if`中的多个条件

时间:2015-11-23 07:26:47

标签: python

我必须检查if中的多个'和'条件 例如:

if (a[1]==b[1]) and (a[2]==b[2]) and (a[3]==b[3]) and (a[4]==b[4]):

我可以在上面使用for循环,如果像

那样
if (a[i]==b[i] for i in range(0,4)):

以上建议不起作用,因为它将条件设置为真,即使其中一个是真的。

2 个答案:

答案 0 :(得分:7)

只需在此使用all()

if all(a[i]==b[i] for i in range(1, 5)):

来自文件:

  

如果iterable的所有元素都为true(或者iterable为空),则返回True

(a[i]==b[i] for i in range(1, 5))返回generator(它是可迭代的),如果该生成器中的所有元素都是all(),则True返回True ,否则False。就像你的代码一样。

答案 1 :(得分:2)

你可以做到

if all(a[i]==b[i] for i in range(1,5)):
    # logic here

all()的用法:

  1. 如果iterable中的所有元素都是True,则返回True
  2. 如果一个元素为False,则返回False
  3. 例如:all([True,True]) - > True     all([False,True]) - > False