【问题标题】:Can someone explain why my Python list index is coming up the same for different index's有人可以解释为什么我的 Python 列表索引对于不同的索引会出现相同的情况吗
【发布时间】:2020-09-16 03:48:05
【问题描述】:

所以我现在正在学习代码大战,并且已经解决了这个问题一个多小时......看起来很简单的任务却让我永远弄清楚。无论如何,这是我被击中的sn-p。 我想返回一个字符串字符数组的索引列表,但前提是该字符是大写的。这适用于不同的字母,但是当出现两个相同的字符时,它们返回相同的索引。前任。 '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')

【问题讨论】:

  • 找到x的第一个索引。
  • 查看方法index的文档。它返回第一次出现的索引。
  • 感谢我寻找不返回第一次出现的方法。
  • @RonH86 你不会找到自动返回“正确”索引的函数。您需要跟踪索引。

标签: python arrays string uppercase


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    索引返回第一次出现。您可以改用计数器:

    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')
    

    【讨论】:

    • 感谢您的帮助,这就是我完成其余解决方案所需的一切。
    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2013-05-14
    • 2018-11-26
    • 2020-09-20
    • 2017-05-22
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多