python - 遍历字符列表,但不超出索引
问题描述
我想循环一串字符;如果一个字符符合某个标准,那么我想在它之后立即调整字符。问题是,如果有问题的字符是字符串中的最后一个字符,并且我想调整超出该字符的字符,那么我就超出了索引范围。
如何在不超出索引的情况下遍历字符串?
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
解决方案
一种方法是使用不包括最后一个字符的字符串切片。
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]
推荐阅读
- firebase - 我得到了这个错误并且无法解决它:反序列化时期望一个列表,但得到一个类 java.lang.String;
- java - 试图在java中创建一个移动的精灵,但有一个残像
- java - If 语句不适用于 Getter 和 Setter 方法
- segmentation-fault - omp 并行循环的段错误
- javascript - 使用 vue.js 组件和属性调用函数
- python - 如何将 .ckpt 文件转换为 Hd5 文件?
- sonarqube - 如何只分析新添加的代码行?
- c# - 将复合表映射到 EF Core 中的默认值表
- bash - 在 bash 中将变量作为命令的一部分展开
- c++ - 我的 try catch 零除法有问题吗?