gpt4 book ai didi

python - 每个索引的排序列表中的最大行序列

转载 作者:行者123 更新时间:2023-12-01 05:12:28 24 4
gpt4 key购买 nike

我已按索引(a,b,c)存储输入,然后按升序(按基本序列)存储输入,如下所示:

input=['3a', '4a', '5a', '6a', 'Ca', 'Da', '4b','5b', '6b', '7b', '7c', '8c']

我的基地中的数字序列按升序排列是:

"123456789ABCD"

现在我想要做的是为每个索引(a,b,c)选择长度超过4的行中的项目并将它们添加到输出列表中(即找到每个索引的最大行序列(a ,b,c),实际上我需要每个索引超过 4 个的所有行组合,但我知道如果我找到每个索引的 MAX LEN 行序列(a,b,c))

因此,对于上述输入,预计会出现以下输出:

[['3a','4a','5a','6a'],['4b','5b','6b','7b']]

这是我尝试使用的代码,代码是Python:

input=['3a','4a','5a','6a','Ca','Da','4b','5b','6b','7b','7c','8c']
digits = '123456789ABCD'
digit_map = {d:i for i, d in enumerate(digits)}
matches=[]
temp=[]
prev = 789
print hands
for n in input:
if digit_map[n[0]] == prev + 1:
matches.append(n)
print matches
else:
if len(matches) >= 4:
temp.append(matches)
print temp
matches = [n]
print matches
prev = digit_map[n[0]]
print temp

最佳答案

lst=['3a', '4a', '5a', '6a', 'Ca', 'Da', '4b','5b', '6b', '7b', '7c', '8c']
prev = lst[0][-1]
streak = 1
streaklst = [lst[0]]
matches = []
for x in lst[1:]:
if x[-1] == prev and streak < 4:
streak += 1
streaklst.append(x)
else:
if streak == 4:
matches.append(streaklst)
streaklst = [x]
streak = 1
prev = x[-1]

print(matches)

将打印

[['3a', '4a', '5a', '6a'], ['4b', '5b', '6b', '7b']] 

注意:对于

lst=['3a', '4a', '5a', '6a', 'Ca', 'Da', 'Aa', 'Ba', '4b','5b', '6b', '7b', '7c', '8c']

它将打印

[['3a', '4a', '5a', '6a'], ['Ca', 'Da', 'Aa', 'Ba'], ['4b', '5b', '6b', '7b']]

即它会找到所有 4 的条纹。您需要告诉我们是否想要这样,因为您的问题有点含糊,您是想要整个条纹,还是想要长度为 4 的条纹,还是想要长度为 4(或更长)的所有条纹)。至少对我来说,您的示例输出和您正在编写的内容有所不同。

要查找长度超过四条的条纹并存储它们,您可以执行以下操作:

lst=['3a', '4a', '5a', '6a', 'Ca', 'Da', 'Aa', 'Ba', '4b','5b', '6b', '7b', '7c', '8c']
prev = lst[0][-1]
streak = 1
streaklst = [lst[0]]
matches = []
for x in lst[1:]:
if x[-1] == prev:
streak += 1
streaklst.append(x)
else:
if streak >= 4:
matches.append(streaklst)
streaklst = [x]
streak = 1
prev = x[-1]

print(matches)

将打印

[['3a', '4a', '5a', '6a', 'Ca', 'Da', 'Aa', 'Ba'], ['4b', '5b', '6b', '7b']] 

len(matches) 现在将为您提供 >= 4 的条纹数量。

关于python - 每个索引的排序列表中的最大行序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888241/

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