我想检查每个列表中是否都存在一个值。
以下返回True
了预期的结果,但似乎不是Python的。
什么是正确/更优雅的方法?
a = [1 ,2]
b = [1, 3]
c = [1, 4]
d = [2, 5]
False in [True if 1 in l else False for l in [a, b, c, d] ]
all(1 in x for x in (a, b, c, d))
演示:
>>> a = [1 ,2]
>>> b = [1, 3]
>>> c = [1, 4]
>>> d = [2, 5]
>>> all(1 in x for x in (a, b, c, d))
False
>>> all(1 in x for x in (a, b, c))
True
>>>
除了更具可读性之外,此解决方案还更有效,因为它使用了惰性求值。它只会检查确定结果所需的尽可能多的项目。
另外,从来没有充分的理由这样做:
True if 1 in l else False
或类似的东西,因为in
已经返回了布尔结果。所有你需要的是:
1 in l
对于否定版本,请使用:
1 not in l
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句