2010-10-25 9 views
9

Comment puis-je prendre un dictionnaire et le scinder en deux listes, une de clés, une de valeurs. Par exemple prendre:scinder un dictionnaire en python en clés et en valeurs

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

et le diviser en:

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

Les gars idées?

Répondre

33

pas difficile, essayez help(dict) dans une console pour plus d'infos :)

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

Pour les clés et valeurs:

items = dictionary.items() 

qui peut être utilisé pour les séparer ainsi:

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

Notez que l'ordre de tous ces éléments est cohérent dans la même instance de dictionnaire. L'ordre des dictionnaires dans Python est arbitraire mais constant pour une instance.

+1

Cool. Je devrais vraiment avoir travaillé celui-ci :) –

+0

Est-ce que python3 garde les clés [idx] correspondent aux valeurs [idx] pour tout idx? –

+0

@VY: Pour les deux vous devriez utiliser 'items()' à la place, je vais ajouter un exemple – Wolph

Questions connexes