Python如何修复遍历字符串时重复字符返回首次索引的问题
问题原因
你的代码问题出在str.index()方法的固有特性上:该方法始终返回指定字符在字符串中首次出现的下标,所以遇到重复字符时,就会返回错误的索引值。
修复方案
可以用Python内置的enumerate()函数遍历字符串,这个函数会同时返回当前元素的序列下标和元素本身,天然适配你的需求:
Python 2 兼容版本(匹配你原有代码的语法风格)
def order(word): for idx, each in enumerate(word): print str(idx) + ": " + each
Python 3 版本
def order(word): for idx, each in enumerate(word): print(f"{idx}: {each}")
可选替代写法
如果不想用enumerate,也可以通过遍历字符串长度的下标实现,效果完全一致:
def order(word): for i in range(len(word)): print str(i) + ": " + word[i]
调用order("Hall")测试,即可得到你需要的输出:
0: H 1: a 2: l 3: l
内容的提问来源于stack exchange,提问作者thebigsting
相关产品推荐
相关产品推荐

