Ich muss alle 2-Paare Kombinationen von Elementen in einer Liste generieren. Nun, ich weiß von zwei Möglichkeiten, dies zu tun: verschachtelte for-Schleifen und Python eingebaute in itertools:Itertools vs Nested Loops Performance
from itertools import combinations
foo = [1, 2, 3, 4]
for i in xrange(len(foo)):
for j in xrange(i + 1, len(foo)):
print foo[i], foo[j]
for c in combinations(foo, 2):
print c
Meine Frage ist: Gibt es signifikante Vorteile zu einem über die andere verwenden?
Der zweite sieht viel schöner aus und ist wahrscheinlich schneller. Sie können einfach ein Programm schreiben, um die Geschwindigkeit zu testen, setzen Sie einfach 'foo = range (1000)', um es zu einem guten Test zu machen. –
'print foo [i], foo [j]' macht eigentlich nicht dasselbe wie 'print c'. Die erste Version druckt 'foo [i]' und 'foo [j]' getrennt durch ein Leerzeichen, während das zweite ein Tupel ausgibt. – user2357112
@ user2357112, ich habe darüber nachgedacht; Ich habe es geändert, um ein Tupel in einer Liste zu speichern, und ich lasse es auf beiden laufen. – Teknophilia