Ich versuche, eine Liste von Quadraten gleicher Zahlen aus einer vorhandenen Liste zu erstellen, aber mein Listenverständnis gibt auch einige seltsame Quadrate zurück. Hier ist ein minimales Beispiel: < /p>
Code: Select all
numbers = [1, 2, 3, 4, 5, 6]
result = [n**2 for n in numbers if n % 2 == 0 else n for n in numbers]
print(result)
Ich habe erwartet, dass das Ergebnis [4, 16, 36] (d. H. Quadrate von 2, 4 und 6) ist, aber stattdessen sehe ich:
Code: Select all
[1, 4, 3, 16, 5, 36]
< /code>
Was ich bisher ausprobiert habe: < /p>
Überprüfte meine Einklebung und meine Platzierung von If /sonst im Verständnis.result = []
for n in numbers:
if n % 2 == 0:
result.append(n**2)
print(result)
Dies funktioniert korrekt (ergibt [4, 16, 36] ), daher weiß ich, dass die Logik selbst in Ordnung ist. 4, 3, 16, 5, 36] anstelle von nur Quadraten?>