Warum überspringt meine for-Schleife ein Element in meiner Liste?
Ich habe eine Liste von ganzen Zahlen, die ich durch ein @ laufor
Schleife, um herauszufinden, ob zwei der kombinierten Elemente einer anderen Variablen entsprechent
. Also wennt
war gleich10
und ich hatte eine Liste von Intergern:l = [1,2,3,4,5,8,9]
, dann sollte die Funktion alle verschiedenen Zahlenkombinationen ausgeben(1,9)
, (2,8)
.
Ich fühle mich fast da, aber etwas Seltsames passiert mit der Liste, wenn ich das @ benutz.pop()
Funktion. Der folgende Code wird verwendet, um alle zu berechnenden Zahlenkombinationen anzuzeigen, aber jedes andere Element in der Liste wird übersprungen.
l = [1,2,5,8,13,15,26,38]
c = 10
for i in l:
first = i
l.pop(0)
for x in l:
second = x
print(first,second)
Hier ist die Ausgabe:
1 2
1 5
1 8
1 13
1 15
1 26
1 38
5 5
5 8
5 13
5 15
5 26
5 38
13 8
13 13
13 15
13 26
13 38
26 13
26 15
26 26
26 38
Notice wie die2
, 8
, 15
, und38
werden übersprungen. Ich benutzel.pop
so dass das zweitefor
ie @ -Schleife verwendet nicht den ursprünglichen Wert, und bei der nächsten Iteration kann das nächste Element in der Liste wiederholt werden.