Ich habe eine Liste mit Unterlisten. Ich möchte alle Unterlisten mit einer Länge von 3 drucken.
Ich mache folgendes in Python:
for x in values[:]:
if len(x) == 3:
print(x)
values
ist die ursprüngliche Liste. Druckt der obige Code jede Unterliste mit einer Länge von 3 für jeden Wert von x
? Ich möchte die Unterlisten length == 3
nur einmal anzeigen .
Das Problem ist behoben. Das Problem ist mit dem Eclipse-Editor. Ich verstehe den Grund nicht, aber es wird nur die Hälfte meiner Liste angezeigt, wenn ich meine Schleife ausführe.
Gibt es Einstellungen, die ich in Eclipse ändern muss?
print values
die Ausgabe hier machen und zeigen? Bearbeiten: oder überprüfen Sie einfach, ob es nicht leer ist.Antworten:
Versuche dies,
x in mylist
ist besser und lesbarer alsx in mylist[:]
und dulen(x)
solltest gleich sein3
.oder wenn Sie mehr Python benötigen, verwenden Sie Listenverständnisse
quelle
Sie können genauso gut verwenden,
for x in values
anstattfor x in values[:]
; Letzterer macht eine unnötige Kopie. Natürlich prüft dieser Code auch auf eine Länge von 2 anstatt von 3 ...Der Code druckt nur ein Element pro Wert von
x
- undx
iteriert über die Elemente vonvalues
, die die Unterlisten sind. Daher wird jede Unterliste nur einmal gedruckt.quelle
values
.Hier ist die Lösung, nach der ich gesucht habe. Wenn Sie List2 erstellen möchten, das die Differenz der Zahlenelemente in List1 enthält.
Beachten Sie, dass while
len(list1)
(Elemente)len(list2)
nur 10 Elemente sind, da wir unsere for-Schleife von Element mit Index 1 in Liste1 und nicht von Element mit Index 0 in Liste1 startenquelle
Tun Sie dies stattdessen:
quelle