微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有人可以解释为什么我的Python列表索引针对不同的索引而产生相同的结果

如何解决有人可以解释为什么我的Python列表索引针对不同的索引而产生相同的结果

因此,我目前正在学习代码战,并且已经解决一个多小时的问题……似乎一个简单的任务使我永远无法解决。无论如何,这是我受到打击的片段。 我想为字符串字符数组返回索引列表,但前提是该字符为大写。这对于不同的字母可以正常工作,但是当出现两个相同字符时,它们将返回相同的索引。例如返回的“ abCdeC”索引为[2],[2]

def solution(s):
    arry = list(s)
    for x in arry:
        if x.isupper():
            print(arry.index(x))
solution('breakCamelBamp')
print('  spacer  ')
solution('breakCamelCamp')

解决方法

正如其他人所指出的那样,问题在于index总是返回第一次出现的索引。相反,请尝试使用当前索引进行迭代:

def solution(s):
    arry = list(s)
    for i,x in enumerate(arry):
        if x.isupper():
            print(i)
,

索引返回第一个匹配项。您可以改为使用计数器:

def solution(s):
    arry = list(s)
    count_array = []
    count = 0
    for x in arry:
        if x.isupper():
            count_array.append(count)
        count += 1
    print(count_array)

solution('breakCamelBamp')
print('  spacer  ')
solution('breakCamelCamp')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。