我想循环一个字符串;如果一个角色符合特定条件,那么我想在它之后立即调整该角色。问题是,如果所讨论的字符是字符串中的最后一个字符,并且我想对该字符进行调整,那么我超出了索引范围。
如何在不超出索引的情况下遍历字符串?
letters_of_name = ["j", "e", "l", "l", "o"]
def uppercase_specific_letters(letter):
for ch_index, ch in enumerate(letters_of_name):
if ch == letter:
if letters_of_name[ch_index + 1] != ch:
letters_of_name[ch_index + 1] = letters_of_name[ch_index + 1].upper()
new_name = "".join(letters_of_name)
return new_name
答案 0 :(得分:1)
一种方法是使用不包含最后一个字符的字符串切片。
for ch_index, ch in enumerate(letters_of_name[:-1]):
另一种选择是使用range()
循环遍历索引,并使用length-1作为限制而不是长度。
for ch_index in range(len(letters_of_name)-1):
ch = letters_of_name[ch_index]