gpt4 book ai didi

python - 如何将列表中的元素与下一个元素进行比较,如果相同则分开?

转载 作者:行者123 更新时间:2023-12-01 06:57:25 25 4
gpt4 key购买 nike

我有一个字符串,其中包含随机字母和数字,但是如果有两个相同且相邻的字母或数字,则必须用 "/" 将它们分开。因此输入字符串为 "uBBjkko",结果应为 "uB/Bjk/ko"

现在我已将字符串转换为列表,以便我可以将每个元素与下一个元素进行比较:

mylist ['u', 'B', 'B', 'j', 'k', 'k', 'o']
for i in range(len(mylist)):
if mylist[i] == mylist[i + 1]:
mylist.insert(i + 1, "/")
print("".join(mylist))

但是如果列表太长并且列表以两个相同的字母或数字结尾,例如

['u', 'B', 'B', 'j', 'k', 'k', 'o', '2', '2']

那么输出将是“uB/Bjk/ko22”,但它需要是“uB/Bjk/ko2/2”

最佳答案

正如我在评论中所说,问题是您在迭代时插入。通过从结束到开始以相反的方式迭代,您可以修复它。这样你的迭代就不会受到插入的影响:

mylist = ['u', 'B', 'B', 'j', 'k', 'k', 'o', '2', '2']
for i in range(len(mylist)-1, 0, -1): # This goes from len(mylist)-1 to 0 in -1 steps
if mylist[i] == mylist[i-1]:
mylist.insert(i, '/')
print("".join(mylist))

关于python - 如何将列表中的元素与下一个元素进行比较,如果相同则分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58750386/

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