函数应该返回字符串中所有具有大写字母的索引的列表



尝试了一种不同的方法。我浏览了每一行代码,但我没有看到这个代码的问题在哪里

def capital_indexes(s):
cap_list = []            
for idx, letter in enumerate(s):
if letter.isupper() == True:
cap_list.append(idx)
return cap_list

return的缩进不正确,return语句在if语句中,因此在找到第一个大写字母后,它将退出:正确的位置在for循环之外:

def capital_indexes(s):
cap_list = []
for idx, letter in enumerate(s):
if letter.isupper():
cap_list.append(idx)
return cap_list

您在第一次迭代后返回!应该是:

def capital_indexes(s):
cap_list = []            
for idx, letter in enumerate(s):
if letter.isupper():
cap_list.append(idx)

return cap_list

奇怪的是,您可以(也应该!(使用列表压缩来使代码更加简洁。

def capital_indexes(s):
return [idx for idx, letter in enumerate(s) if letter.isupper()]

最新更新