Python:检查列表中至少有两个值满足条件
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
将 return 迭代器 (1, 1)
(即每个 e
的值 1
使得它在 3.0
和4.0
);然后对这些求和得到满足条件的元素数。
will this early exit when the list a
is very long?
没有。这会的,不过,它使逻辑有点复杂:
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()
我在 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
将 return 迭代器 (1, 1)
(即每个 e
的值 1
使得它在 3.0
和4.0
);然后对这些求和得到满足条件的元素数。
will this early exit when the list
a
is very long?
没有。这会的,不过,它使逻辑有点复杂:
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()