gpt4 book ai didi

python - 列表中大于 x 的数字序列的长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:43 24 4
gpt4 key购买 nike

我需要检索序列的长度,这些数字都大于任意选择的值x(某种“严重性”)。

一个序列可以是例如:

list = [4, 3, 4, 5, 2, 5, 6, 5, 5, 6, 7, 6 ]

在这种情况下,场景可能是:

x=6
[1, 3] # since there are only two sequences with values greater than 6 (the 6 alone, and the triplet 6,7,6]

问题类似于:Python: determine length of sequence of equal items in list , 它仅适用于等号序列。

出于这个原因,在我的“草稿”中,我从列表的最大数量开始(在前面的场景 x=7 中),然后用较小的数量替换它并找到长度这些序列(将所有 7 替换为 6 并运行相同的算法以找到至少 6 的序列长度)。

没有简单循环的 pythonic 方法是什么?

最佳答案

您可以使用 itertools.groupby :

from itertools import groupby

data = [4, 3, 4, 5, 2, 5, 6, 5, 5, 6, 7, 6 ]
x = 6

out = [sum(1 for _ in group) for is_larger, group in groupby(data, lambda value: value>=x) if is_larger]
print(out)
#[1, 3]

groupby根据条件对值进行分组 value >= x ,成为关键 is_larger .

我们只保留is_larger所在的组是True ,对于这些,我们用 sum(1 for _ in group) 得到它们的长度.

关于python - 列表中大于 x 的数字序列的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54705335/

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