J'essaie d'importer le module izip comme suit:
from itertools import izip
Cependant, après le passage récent de Python 2.7 à 3 - cela ne semble pas fonctionner.
J'essaie d'écrire dans un fichier csv:
writer.writerows(izip(variable1,2))
Mais je n'ai pas de chance. Encore rencontrer une erreur.
Dans Python 3, le paramètre Zip
intégré effectue le même travail que itertools.izip
Dans 2.X (renvoie un itérateur au lieu d'une liste). Zip
implémentation est presque complètement copié-collé à partir de ancien izip
, avec seulement quelques noms modifiés et le support de pickle ajouté.
Voici un point de repère entre Zip
dans Python 2 et 3 et izip
dans Python 2:
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))
Sortie:
1.9288790226
1.2828938961
Python :
from timeit import timeit
print(timeit('list(Zip(range(100), range(100)))', number=500000))
Sortie:
1.7653984297066927
Dans ce cas, puisque les arguments de Zip
doivent supporter l'itération, vous ne pouvez pas utiliser 2 comme argument. Donc, si vous voulez écrire 2 variables sous la forme d'une ligne CSV, vous pouvez les mettre dans un tuple ou une liste:
writer.writerows((variable1,2))
Également à partir de itertools
, vous pouvez importer Zip_longest
En tant que fonction plus flexible que vous pouvez utiliser sur des itérateurs de taille différente.
Une des manières qui m'a aidé est:
try:
from itertools import izip as Zip
except ImportError: # will be 3.x series
pass
Utilisez Zip
au lieu de izip
directement dans python 3, inutile d'importer quoi que ce soit.
Pour une visite ultérieure ici .