我有一个用Python创建的列表,类似于a=[1.0,3.7,1.0,3.9]
。
我需要检查if
条件,列表中至少有两个值的值在[3.0,4.0]范围内,然后执行某些操作。
答案 0 :(得分:4)
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, 1)
(即每个1
的值e
,使其位于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()