【发布时间】:2015-08-09 20:39:27
【问题描述】:
我有这个函数,接收一个单词并列出每个大写字母的索引:
def capitals(word):
print word
lst = []
for i in word:
if i.isupper():
lst += [word.index(i)]
return lst
当单词中的所有大写字母都不同时,它运行正常。示例:
capitals("AuIkkdjsiP") 返回 [0,2,9]
但是,如果字符串有重复的大写字母,就会发生这种情况:
capitals("AuAskdjfIsjUsdhA") 返回 [0,0,10,0]
在迭代字符串时如何获取其他出现的字符“A”的索引?
【问题讨论】:
-
使用
enumerate()并遍历索引和字符。 -
在
import re、[ match.start() for match in re.finditer('[A-Z]', "AuAskdjfIsjUsdhA") ]==> 之后[0, 2, 8, 11, 15]