繁体   English   中英

测试多个列表中是否存在值

[英]Test if value exists in several lists

我想检查每个列表中是否存在值。

以下按预期返回True ,但似乎不是pythonic。

这样做的正确/更优雅的方法是什么?

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生成器表达式

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已经返回boolean结果。 所有你需要的是:

1 in l

对于否定版本,请使用:

1 not in l

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM