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 zweiteforie @ -Schleife verwendet nicht den ursprünglichen Wert, und bei der nächsten Iteration kann das nächste Element in der Liste wiederholt werden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage