1
votes

Quelqu'un peut-il m'aider avec Python enumerate ()?

Essayez vous-même la fonction énumération dans cet exercice rapide. Complétez la fonction skip_elements () pour renvoyer tous les autres éléments de la liste, cette fois en utilisant la fonction enumerate () pour vérifier si un élément est sur une position paire ou impaire position.

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

Ma solution ci-dessous ne renvoie que "a" et "orange"

Je suppose que la boucle for ne fonctionne pas correctement? Que me manque-t-il?

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


1 commentaires

vous avez la bonne idée en utilisant enumerate et i% 2 , vous semblez mal comprendre comment fonctionne return , essayez de réviser cela.


3 Réponses :


0
votes

Vous utilisez return, qui sort de la boucle. Si vous voulez simplement imprimer, vous voudrez quelque chose comme:

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

Si vous voulez renvoyer une liste:

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


1 commentaires

L'utilisation de la fonction par les OP s'attend clairement à ce qu'elle renvoie une liste



-1
votes

Utilisez la propriété slice de la liste a [start: stop: step]

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


1 commentaires

Le problème posé spécifiquement les états utilisant la méthode enumerate et vérifiant la parité de l'index.



2
votes

La boucle for fonctionne correctement, le problème est que vous effectuez un retour. Lorsque nous faisons un retour, le contrôle sort de la boucle. Si vous souhaitez renvoyer les éléments, vous pouvez les stocker dans une liste puis renvoyer

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


0 commentaires