libreria - pairwise python
importar izip desde el módulo itertools proporciona NameError en Python 3.x (3)
En Python 3, el
zip
incorporado hace el mismo trabajo que
itertools.izip
en 2.X (devuelve un iterador en lugar de una lista).
La
implementación de
zip
se copia casi por completo del
antiguo
izip
, solo con algunos nombres cambiados y se agregó soporte de pickle.
Aquí hay un punto de referencia entre
zip
en Python 2 y 3 e
izip
en 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))
Salida:
1.9288790226
1.2828938961
Python 3 :
from timeit import timeit
print(timeit(''list(zip(range(100), range(100)))'', number=500000))
Salida:
1.7653984297066927
En este caso, dado que los argumentos de
zip
deben admitir la iteración, no puede usar 2 como argumento.
Entonces, si desea escribir 2 variables como una fila CSV, puede ponerlas en una tupla o lista:
writer.writerows((variable1,2))
También desde
itertools
puedes importar
zip_longest
como una función más flexible que puedes usar en iteradores con diferentes tamaños.
Estoy tratando de importar el módulo izip así:
from itertools import izip
Sin embargo, después de cambiar recientemente de Python 2.7 a 3, no parece funcionar.
Estoy tratando de escribir en un archivo csv:
writer.writerows(izip(variable1,2))
Pero no tengo suerte. Aún encuentro un error.
Una de las formas que me ayudó es:
try:
from itertools import izip as zip
except ImportError: # will be 3.x series
pass
Use
zip
lugar de
izip
directamente en python 3, no es necesario importar nada.
Para más visita here .