我有一个字符串,其中包含随机字母和数字,但是如果有两个相同或彼此相邻的字母或数字,则必须用分隔它们"/"
。因此,输入字符串为"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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句