迭代字符串并对其进行切片 - 索引错误 - Python

问题描述 投票:1回答:1

我试图迭代一个字符串,并检查连续的字符是否相同。如果不是我想插入它们之间的空间。然后将此新字符串存储在Mynewstring中,直到while循环遍历所有字符。

我发布了一个While循环,尝试了这个也使用For循环,得到相同的结果。任何帮助将不胜感激!

mystr = '77445533'
mynewstring = ""

myind = 0

while myind < len(mystr)+1:
  if mystr[myind] != mystr[myind +1]:
    mynewstring = mystr[:(myind)] + " " + mystr[(myind+1):]
  myind+=1

打印(mynewstring)

string python-3.x
1个回答
1
投票

您可以使用迭代器而不是索引。我使用zip函数从头开始和第一个字符迭代字符。如果字符不同,则插入空格。

唯一的特殊情况是添加自第一个迭代器完成以来不能与任何东西匹配的最后一个字符。

mystr = '77445533'
mynewstring = ''

for pair in zip(mystr, mystr[1:]):
    mynewstring += pair[0]
    if pair[0] != pair[1]:
        mynewstring += ' '
mynewstring += mystr[-1]
© www.soinside.com 2019 - 2024. All rights reserved.