【问题标题】:Can anybody help me with Python enumerate()?任何人都可以帮助我使用 Python enumerate() 吗?
【发布时间】:2020-07-01 09:08:06
【问题描述】:

在这个快速练习中亲自尝试枚举函数。完成 skip_elements() 函数以返回列表中的所有其他元素,这次使用 enumerate() 函数检查元素是在偶数位置还是奇数位置。

def skip_elements(elements):
    # code goes here
    
    return ___

print(skip_elements(["a", "b", "c", "d", "e", "f", "g"])) # Should be ['a', 'c', 'e', 'g']
print(skip_elements(['Orange', 'Pineapple', 'Strawberry', 'Kiwi', 'Peach'])) # Should be ['Orange', 'Strawberry', 'Peach']

我下面的解决方案只返回 "a""orange"

我猜for 循环工作不正常?我错过了什么?

def skip_elements(elements):
    # code goes here
    for i,alpha in enumerate(elements):
        if i%2==0:
            return alpha

【问题讨论】:

  • 您使用enumeratei%2 的想法是正确的,您似乎误解了return 的工作原理,请尝试修改。

标签: python enumerate


【解决方案1】:

for 循环工作正常,问题是您正在执行 return。当我们执行 return 时,控件会退出循环。如果要返回元素,可以将它们存储在列表中,然后返回

def skip_elements(elements):
# code goes here
elements = []
for i,alpha in enumerate(elements):
    if i%2==0:
        elements.append(alpha)
return elements

【讨论】:

    【解决方案2】:

    您正在使用 return,它退出循环。如果你只是想打印,你会想要这样的东西:

    def skip_elements(elements):
        # code goes here
        for i,alpha in enumerate(elements):
            if i%2==0:
                print(alpha)
    

    如果你想返回一个列表:

    def skip_elements(elements):
        even_elements = []
        for i,alpha in enumerate(elements):
            if i%2==0:
                even_elements.append(alpha)
        return even_elements
    

    【讨论】:

    • OPs 对函数的使用显然期望它返回一个列表
    【解决方案3】:

    使用 a 列表的 slice 属性 [start:stop:step]

    ["a", "b", "c", "d", "e", "f", "g"][::2]
    

    【讨论】:

    • 提出的问题具体说明使用enumerate方法并检查索引的奇偶性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2019-10-12
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多