Diferencia entre dict.items() y dict.iteritems() en Python

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.

Publicación traducida automáticamente

Artículo escrito por Tejashwi5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *