gpt4 book ai didi

python - 如果超过某个值,则对元素进行计数

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:30 24 4
gpt4 key购买 nike

我有一个元素列表,其中包含某些类型为 float 的值。我想遍历元素并在它们超过某个值时对它们进行计数,但也只在它们出现超过阈值 minimum_count 次时才对它们进行计数。因此,例如,如果有以下输入:

list_of_values = [2.0, 2.0, 2.0, 2.0, 0, 0, 2.0, 2.0, 2.0, 0, 0]
treshold_value = 1.0
minimum_count = 4

答案应该是 4,因为 treshold_value 1.0 仅在索引 0-3 处连续超过 4 次。我现在有下面的代码,

for value in list_of_values:
if value >= treshold_value:
counter += 1
if counter >= (minimum_count):
time_use += 1
if value < min_treshold_value:
counter = 0
print(time_use)

我知道应该有一些 pythonic 的方法来实现这个:)

编辑:应计算超过阈值的所有连续子序列值的总和。

最佳答案

以下使用groupby使用条件生成器和 max具有适当的键功能应该可以工作:

from itertools import groupby

len(max((list(g) for k, g in groupby(list_ov, key=lambda x: x > threshold) if k), key=len))

groupby 通过键函数的连续相同值对可迭代进行分组。它产生成对的键值和相应的子迭代。

关于python - 如果超过某个值,则对元素进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46448881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com