2010-10-25 148 views
9

¿Cómo puedo tomar un diccionario y dividirlo en dos listas, una de las claves, una de valores. Por ejemplo tomar:dividir un diccionario en python en claves y valores

{'name': 'Han Solo', 'firstname': 'Han', 'lastname': 'Solo', 'age': 37, 'score': 100, 'yrclass': 10} 

y dividirlo en:

['name', 'firstname', 'lastname', 'age', 'score', 'yrclass'] 
# and 
['Han Solo', 'Han', 'Solo', 36, 100, 10] 

Cualquier chicos ideas?

Respuesta

33
No

tan difícil, tratar help(dict) en una consola para obtener más información :)

keys = dictionary.keys() 
values = dictionary.values() 

Para ambas claves y valores:

items = dictionary.items() 

que se puede utilizar para dividir ellos, así:

keys, values = zip(*dictionary.items()) 

Tenga en cuenta que el orden de todos estos es coherente dentro de la misma instancia de diccionario. El orden de los diccionarios en Python es arbitrario pero constante para una instancia.

+1

Cool. Realmente debería haber trabajado esto :) –

+0

¿Python3 mantener las claves [idx] corresponden a los valores [idx] para cualquier idx? –

+0

@VY: para ambos debería usar 'items()' en su lugar, agregaré un ejemplo – Wolph

Cuestiones relacionadas