[英]Python: Checking at least two values in a list satisfy a condition
我有一个用Python创建的列表,类似a=[1.0,3.7,1.0,3.9]
。 我需要检查条件, if
列表中的至少两个值的值在[3.0,4.0]范围内,然后执行某些操作。
if sum(1 for e in a if 3.0 <= e < 4.0) >= 2:
something()
1 for e in a if 3.0 <= e < 4.0
则1 for e in a if 3.0 <= e < 4.0
为(1, 1)
将返回迭代器(1, 1)
(即,每个e
的值1
介于3.0
和4.0
之间); 然后将这些元素相加即可得出满足条件的元素的数量。
列表
a
很长时,是否会提前退出?
不会。但是,这会使逻辑变得更复杂:
from itertools import accumulate
if any(n for n in accumulate(1 for e in a if 3.0 <= e < 4.0) if n >= 2):
something()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.