gpt4 book ai didi

python - 如何检查排序列表中是否存在序列?

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

我在检查排序列表中是否存在序列时遇到一些问题。例如,如果我的列表是

n=[1,2,3,4,5,6,7]

我可以将代码编写为:

for i in range(1,len(n)):
if n[i]==n[0]+1:
print('yes')

但是,如果我一次检查 5 个数字,这个逻辑就会失败。例如,如果我的列表是

n=[1,3,4,5,6,7,8]

我的序列不包含前 5 个数字,但它确实存在于列表中。我想知道是否有人可以给我一些关于如何一次逐个检查 5 个数字的序列号的提示。谢谢

最佳答案

您可以使用Python2.6的itertools中的这个配方页面:

from itertools import groupby
from operator import itemgetter

data = [ 1, 4,5,6, 10, 15,16,17,18, 22, 25,26,27,28,29]
# Find runs of consecutive numbers using groupby. The key to the solution
# is differencing with a range so that consecutive numbers all appear in
# same group.
for k, g in groupby(enumerate(data), lambda x: x[0]-x[1]):
seq = list(map(itemgetter(1), g))
# if you don't want the actual items then:
# sum(1 for _ in g) >= 5: print('yes')
if len(seq) >= 5:
print (seq)

输出:

[25, 26, 27, 28, 29]

关于python - 如何检查排序列表中是否存在序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22923707/

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