有人可以用Python enumerate()帮助我吗?

时间:2020-07-01 09:08:06

标签: python enumerate

在此快速练习中,自己尝试枚举功能。完成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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您正在使用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

答案 2 :(得分:-1)

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

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