2010-10-03 23 views
0

J'ai un dictionnaire avec plusieurs valeurs que je veux garder constantes, mais j'ai besoin de les faire pivoter entre les différentes touches. Y a-t-il une fonction intégrée ou une bibliothèque externe qui serait capable de faire cela ou serais-je mieux d'écrire moi-même toute la chose?Faire pivoter les clés du dictionnaire en python

Exemple de ce que je suis en train de faire:

>>> firstdict = {'a':'a','b':'b','c':'c'} 
>>> firstdict.dorotatemethod() 
>>> firstdict 
{'a':'b','b':'c','c':'a'} 
>>> 

Je n'ai pas en ordre, je dois juste les valeurs à associer à un autre à chaque fois que la clé.

+3

cela ressemble plus à ce que vous n'avez pas vraiment besoin d'un dictionnaire –

+0

Convenu. Pouvez-vous dire à un niveau supérieur ce que vous essayez de faire? –

Répondre

7
>>> from itertools import izip 
>>> def rotateItems(dictionary): 
... if dictionary: 
...  keys = dictionary.iterkeys() 
...  values = dictionary.itervalues() 
...  firstkey = next(keys) 
...  dictionary = dict(izip(keys, values)) 
...  dictionary[firstkey] = next(values) 
... return dictionary 
... 
>>> firstdict 
{'a': 'a', 'c': 'c', 'b': 'b'} 
>>> rotateItems(firstdict) 
{'a': 'b', 'c': 'a', 'b': 'c'}