¿Existe alguna manera de iterar de manera eficiente sobre los valores/elementos en un diccionario que funciona tanto en Python 2 como en Python 3?Generadores para iterar uniformemente en un diccionario tanto en Python 2 como en 3
En Python 2, puedo escribir
for x in mydict:
for x in mydict.iterkeys():
for x in mydict.viewkeys():
for x in mydict.itervalues():
for x in mydict.viewvalues():
for x in mydict.iteritems():
for x in mydict.viewitems():
y en Python 3, tengo las siguientes posibilidades:
for x in mydict:
for x in mydict.keys():
for x in mydict.values():
for x in mydict.items():
lo tanto, puedo iterar sobre las claves con for x in mydict
, y que las obras tanto en Python 2 como en 3. Pero, ¿hay alguna forma de iterar sobre valores y pares clave-valor ('elementos') que funcione universalmente? Lo necesito para escribir el código de Python que se puede ejecutar en ambas versiones de Python.
(En una nota lateral, otros obstáculos con los iteradores se pueden omitir fácilmente; tomar, por ejemplo:
if sys.version_info.major<3:
from itertools import izip as zip, imap as map
Sin embargo, los métodos de diccionario no pueden ser redefinidos fácilmente como map
y zip
.)
Cualquier ideas?
EDIT: Creo que quieres decir que los generadores iteran sobre el diccionario – jamylak
@jamylak: sí, gracias. – Daniel