Python:检查列表中的至少两个值是否满足条件

时间:2017-12-08 06:03:22

标签: python list if-statement multiple-instances

我有一个用Python创建的列表,类似于a=[1.0,3.7,1.0,3.9]。 我需要检查if条件,列表中至少有两个值的值在[3.0,4.0]范围内,然后执行某些操作。

1 个答案:

答案 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.04.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()