我必须检查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)):
以上建议不起作用,因为它将条件设置为真,即使其中一个是真的。
答案 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()
的用法:
True
,则返回True
False
,则返回False
例如:all([True,True])
- > True
all([False,True])
- > False