Ich will wieder nur die ungeraden zahlen in einer Liste

Mein Problem hier ist, dass der code filtert die geraden zahlen richtig, das ist, was ich will, jedoch hält es bei sieben-und nicht-Anzeige der Nummer 9, das ist, was ich erwarten würde, es zu tun. Ich habe versucht, über meinen code aber ich kann nicht scheinen, um herauszufinden, das Problem

def remove_even(numbers) :
    new_list = []
    for i in range(0,len(numbers)-1) :
        if i % 2 != 0 :
            new_list.append(i)
    return new_list
l = [1,2,3,4,5,6,7,8,9,10]
print(remove_even(l))
  • Überprüfen Sie bitte, bevor Sie Fragen, stackoverflow.com/questions/4039374/...
  • verwenden Sie einfach eine Liste mit Verständnis auf Ihre Liste zu erstellen. no_even = [x for x in range(n) if x % 2 != 0]
  • Sie Durchlaufen die Indizes, die Sie ersetzen müssen i im inneren Schleife mit numbers[i].
  • warum wurde meine Antwort und alle Antworten hier runter gestimmt? meins war in der Tat die erste Antwort vorschlagen, diese Lösung und nach der op ist es der richtige weil die akzeptierte Antwort hat die gleiche Lösung?
  • Siehe auch Immer jede ungerade Variablen in eine Liste?
  • Mit Rekursion in Python für diese Aufgabe ist verrückt. Der einzige Grund, dies zu tun rekursiv ist als eine übung in der Rekursion, und ich vermute, dass der OP nicht ganz zu diesem Zeitpunkt noch nicht.
  • Vereinbart... ich bin mir nicht sicher, warum OP angenommen, dass als ein Duplikat.

Schreibe einen Kommentar