In Python 3 zip
erledigt das eingebaute den gleichen Job wie itertools.izip
in 2.X (gibt einen Iterator anstelle einer Liste zurück). Die zip
Implementierung wurde fast vollständig von der altenizip
kopiert , nur ein paar Namen wurden geändert und die Pickle-Unterstützung wurde hinzugefügt.
Hier ist ein Benchmark zwischen zip
Python 2 und 3 und izip
Python 2:
Python 2.7 :
from timeit import timeit
print(timeit('list(izip(xrange(100), xrange(100)))',
'from itertools import izip',
number=500000))
print(timeit('zip(xrange(100), xrange(100))', number=500000))
Ausgabe:
1.9288790226
1.2828938961
Python 3 :
from timeit import timeit
print(timeit('list(zip(range(100), range(100)))', number=500000))
Ausgabe:
1.7653984297066927
In diesem Fall zip
können Sie 2 nicht als Argument verwenden, da die Argumente die Iteration unterstützen müssen. Wenn Sie also 2 Variablen als CSV-Zeile schreiben möchten, können Sie sie in ein Tupel oder eine Liste einfügen:
writer.writerows((variable1,2))
itertools
Sie können auch von zip_longest
als flexiblere Funktion importieren, die Sie auf Iteratoren mit unterschiedlicher Größe verwenden können.