dict.items() y dict.iteriteams() casi hacen lo mismo, pero hay una ligera diferencia entre ellos:
- dict.items(): devuelve una copia de la lista del diccionario en forma de pares de tuplas (clave, valor), que es una versión (Python v3.x) y existe en la versión (Python v2.x).
- dict.iteritems(): devuelve un iterador de la lista del diccionario en forma de pares de tuplas (clave, valor). que es una versión (Python v2.x) y se omitió en la versión (Python v3.x).
Para Python2.x:
Ejemplo 1
Python
# Python2 code to demonstrate # d.iteritems() d ={ "fantasy": "harrypotter", "romance": "me before you", "fiction": "divergent" } # every time you run the object address keeps changes print d.iteritems()
Producción:
<dictionary-itemiterator object at 0x7f04628d5890>
Para imprimir los elementos del diccionario, use un bucle for() para dividir los objetos e imprimirlos
Ejemplo-2
Python
# Python2 code to demonstrate # d.iteritems() d ={ "fantasy": "harrypotter", "romance": "me before you", "fiction": "divergent" } for i in d.iteritems(): # prints the items print(i)
Producción:
('romance', 'me before you') ('fantasy', 'harrypotter') ('fiction', 'divergent')
Si intentamos ejecutar dict.items() en Python v2.x, se ejecuta como existe dict.items() en v2.x.
Ejemplo-3
Python
# Python2 code to demonstrate # d.items() d ={ "fantasy": "harrypotter", "romance": "me before you", "fiction": "divergent" } # places the tuples in a list. print(d.items()) # returns iterators and never builds a list fully. print(d.iteritems())
Producción:
[(‘romance’, ‘yo antes de ti’), (‘fantasía’, ‘harrypotter’), (‘ficción’, ‘divergente’)] <objeto diccionario-itemiterator en 0x7f1d78214890>
Para Python3:
Ejemplo 1
Python3
# Python3 code to demonstrate # d.items() d ={ "fantasy": "harrypotter", "romance": "me before you", "fiction": "divergent" } # saves as a copy print(d.items())
Producción:
dict_items([(‘fantasía’, ‘harrypotter’), (‘ficción’, ‘divergente’), (‘romance’, ‘yo antes de ti’)])
Si intentamos ejecutar dict.iteritems() en Python v3.x, nos encontraremos con un error.
Ejemplo-2
Python3
# Python3 code to demonstrate # d.iteritems() d ={ "fantasy": "harrypotter", "romance": "me before you", "fiction": "divergent" } print("d.items() in (v3.6.2) = ") for i in d.items(): # prints the items print(i) print("\nd.iteritems() in (v3.6.2)=") for i in d.iteritems(): # prints the items print(i)
Producción:
d.items() in (v3.6.2) = ('fiction', 'divergent') ('fantasy', 'harrypotter') ('romance', 'me before you') d.iteritems() in (v3.6.2)=
Traceback (most recent call last): File "/home/33cecec06331126ebf113f154753a9a0.py", line 19, in for i in d.iteritems(): AttributeError: 'dict' object has no attribute 'iteritems'
Veamos las diferencias en forma tabular:
dict.items() | dict.iteritems() | |
1. | El método dict.items() devuelve un objeto de vista. | La función dict.iteritems() devuelve un iterador de la lista del diccionario. |
2. |
Su sintaxis es-: diccionario.items() |
El dict.iteritems() es un generador que produce 2 tuplas |
3. | No toma ningún parámetro. | No toma ningún parámetro. |
4. | Su valor devuelto es una lista de pares de tuplas. | Su valor de retorno es el iterador en la lista de pares de valores clave. |
5. | Si la lista de entrada está vacía, devuelve una lista vacía. | Es la característica de la versión python2 pero se elimina en la versión python3. |