我有一个字符串,其中一个字符('@')需要被一个或多个字符“按顺序”和“周期性”列表中的字符替换。 所以,比如我有在Python中“定期”替换字符串中的字符的最佳方式是什么?
'[email protected]@@[email protected]@[email protected]@@[email protected]@[email protected]'
,并希望
'ab1cde23fghi1jk2lmno312p3qrs1tuvwxy2z'
为replace_chars = ['1', '2', '3']
的问题是,在这个例子中有更多@字符串 比我有替代品。
这是我的尝试:
result = ''
replace_chars = ['1', '2', '3']
string = '[email protected]@@[email protected]@[email protected]@@[email protected]@[email protected]'
i = 0
for char in string:
if char == '@':
result += replace_chars[i]
i += 1
else:
result += char
print(result)
但这仅仅的作品当然,如果有不超过三个@原字符串中否则我得到IndexError。
编辑:谢谢你的答案!
使用'replace_chars [i%replace_chars.length]'。那么你只能做到索引中的“模”。例如3个字符,你做'1%3 - > 1','2%3 - > 2','3%3 - > 0','4%3 - > 1'等等...... –
加'i在'i + = 1'下面的%= 3' –