gpt4 book ai didi

python - 在python中修改带有数字的列表

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

我正在尝试修改列表。目前,有一个随机数列表,我想更改列表以创建数字之间增加的最大数量。也许我措辞不好。例如,如果列表是 [2,3,1,2,1],我会修改为 [1,2,3,1,2],因为 1->2、2->3 和 1->2 递增,总共给出 3 个递增序列。有什么建议吗?

最佳答案

我会用这个递归算法来解决你的问题。我正在做的是对我的列表进行排序,将所有重复项放在末尾,然后重复相同的操作,但不包括已排序的、无重复项的列表。

def sortAndAppendDuplicates(l):

l.sort()
ll = list(dict.fromkeys(l)) # this is 'l' without duplicates
i = 0
while i < (len(ll)-1):
if list[i] == list[i+1]:
a = list.pop(i)
list.append(a)
i = i - 1
i = i + 1

if hasNoDuplicates(l):
return l
return ll + sortAndAppendDuplicates(l[len(ll):])

def hasNoDuplicates(l):

return( len(l) == len( list(dict.fromkeys(l)) ) )


print(sortAndAppendDuplicates([2,3,6,3,4,5,5,8,7,3,2,1,3,4,5,6,7,7,0,1,2,3,4,4,5,5,6,5,4,3,3,5,1,2,1]))

# this would print [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 3, 4, 5, 3, 5, 3, 5]

关于python - 在python中修改带有数字的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55311925/

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