gpt4 book ai didi

python - 在列表中查找连续的整数

转载 作者:行者123 更新时间:2023-11-28 17:00:04 25 4
gpt4 key购买 nike

我正在尝试从未排序的列表中查找连续的值。实验代码如下:

num = [8, 9, 4, 1, 2, 3]

#(num[0+1]) next value

for i in range(len(num)-1): # not using -1 will cause index error
if num[i]+1==num[i+1]:
print('Con',num[i])

问题:我无法使用当前代码获取最后一个值。我的输出不包括最后一个值。这是我得到的(没有 9 或没有 3):

Con 8
Con 1
Con 2

我见过一些复杂的解决方案,对我来说有点难以理解。是否可以稍微调整 for 循环部分并获得整个序列?非常感谢。

最佳答案

您可以使用函数groupby:

from itertools import groupby

num = [8, 9, 4, 1, 2, 3]

# Enumerate and get differences between counter—integer pairs
# Group by differences (consecutive integers have equal differences)
gb = groupby(enumerate(num), key=lambda x: x[0] - x[1])

# Repack elements from each group into list
all_groups = ([i[1] for i in g] for _, g in gb)

# Filter out one element lists
list(filter(lambda x: len(x) > 1, all_groups))
# [[8, 9], [1, 2, 3]]

关于python - 在列表中查找连续的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211695/

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