繁体   English   中英

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.01 for e in a if 3.0 <= e < 4.0(1, 1)将返回迭代器(1, 1) (即,每个e的值1介于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()

暂无
暂无

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

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