2010-10-03 62 views
0

我有一个字典有几个值,我想保持不变,但我需要在不同的键上旋转它们。是否有内置的函数或外部库,能够做到这一点,或者我会更好的只是自己写整个东西?什么我试图做在python中旋转字典键

例子:

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

我不必在顺序,我需要的只是值相关联的不同的密钥每次。

+3

听起来更像是你实际上不需要字典 – 2010-10-03 17:47:25

+0

同意。你能否在更高的层面上告诉你想要做什么? – 2010-10-03 19:05:56

回答

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'}