2009-08-18 14 views

Respuesta

6

Para una lista de tuplas de:

my_dict.items() 

Si todo lo que estamos haciendo es iterar sobre los elementos, sin embargo , a menudo es preferible usar dict.iteritems(), que es más eficiente desde el punto de vista de la memoria porque devuelve solo un elemento a la vez, en lugar de todos los elementos a la vez:

for key,value in my_dict.iteritems(): 
    #do stuff 
+0

el bucle for podría usarse para hacer una lista de comprensión o un generador. – geowa4

5

En Python 2.*, thedict.items(), como en la respuesta de @ Andrew. En Python 3.*, list(thedict.items()) (dado que items es solo una vista iterativa, no una lista, debe llamar al list explícitamente si necesita exactamente una lista).

+0

Meh, no estoy seguro de que me guste ... pero gracias por la propina. –

+0

@Andrew - básicamente es que en Python 3+, el comportamiento de dict.items(), cambiará para coincidir con el comportamiento de dict.iteritems(), como los describí en mi publicación. – Triptych

+0

@Triptych Solo me quejaba de que eligieran hacer que el iterador fuera la vista por defecto. –

-2

Para Python> 2.5:

a = {'1' : 10, '2' : 20 } 
list(a.itervalues()) 
+2

esa es una lista plana de valores , no la lista de tuplas (clave, valor) que el cartel estaba pidiendo – Anentropic

3

conversión de dict-list es fácil en Python. Tres ejemplos:

d = {'a': 'Arthur', 'b': 'Belling'} 

d.items() [('a', 'Arthur'), ('b', 'Belling')] 

d.keys() ['a', 'b'] 

d.values() ['Arthur', 'Belling'] 

como se ve en una respuesta anterior, Converting Python Dictionary to List.

Cuestiones relacionadas