遍历字符列表,但不超出索引范围

时间:2020-11-05 03:56:52

标签: python loops

我想循环一个字符串;如果一个角色符合特定条件,那么我想在它之后立即调整该角色。问题是,如果所讨论的字符是字符串中的最后一个字符,并且我想对该字符进行调整,那么我超出了索引范围。

如何在不超出索引的情况下遍历字符串?

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

1 个答案:

答案 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]