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 mitnumbers[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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nur direkt in einer Schleife durch Ihre Werten anstelle von Indizes
Sonst, wenn Sie wollte
range
müssten Sie index in Ihrelist
Kürze halber, Liste Verstehens sind gut geeignet für diese Art von Aufgabe
Ist eine einfache list comprehension zurückgibt
Dies ist, weil Sie beginnen Ihr range () - Funktion der for-Schleife von 0 bis len(Zahl)-1 (die 9 in deinem Fall), python Palette() schon ausgeführt wird bis Ende-1:
zB:
drucken-NR:
0
1
2
3
4
5
6
7
8
... und das ist der Grund, warum die 9 hier nicht in der Ausgabe.
Sie nicht haben, um starten Sie die Schleife von 0.
Wenn Sie ab 0 kannst du gerne deine for-Schleife wie diese:
1)
2)Oder Sie können code wie mehr pythonic way.