Reverse elements in dictionary
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Python reverse / inverse a mapping
假设我有以下内容。
1 | D = {'a':1,'b':2,'c':3} |
我如何反转每一个元素以获得
1 | inverseD = {1:'a',2:'b',3'c'} |
使用一个听写理解(Python)
1 2 3 4 | D = {'a':1,'b':2,'c':3} inverse = {v: k for k, v in D.items()} print(inverse) # {1: 'a', 2: 'b', 3: 'c'} |
如果你有Python2.7+其他的Mhawke的答案,你可以使用Mata的答案。
如果源代码的所有值都是独一无二的,就可以推翻这样的命令。
如果价值是可以的,但不是唯一的,你可以用列表来命令价值。
对于Python2.6和猎犬(没有听懂):
ZZU1
This assumes the values of dict edoc1〔2〕are hashable,for example,it won't work on this dictionary:
1 2 3 4 5 | >>> d={'l':[],'d':{},'t':()} >>> inverse_dict = dict((v,k) for k,v in d.items()) Traceback (most recent call last): File"<stdin>", line 1, in <module> TypeError: unhashable type: 'list' |
如果原始字典的价值不是独一无二的,你也会成为问题。
1 2 3 | >>> d={'a': 1, 'c': 3, 'b': 2, 'd': 1} >>> dict((v,k) for k,v in d.items()) {1: 'd', 2: 'b', 3: 'c'} |