說我有以下幾點。
D = {'a':1,'b':2,'c':3}
我將如何扭轉每一個元素,所以我得到
inverseD = {1:'a',2:'b',3'c'}
說我有以下幾點。
D = {'a':1,'b':2,'c':3}
我將如何扭轉每一個元素,所以我得到
inverseD = {1:'a',2:'b',3'c'}
使用字典理解(Python的2.7+
和3.0+
):
D = {'a':1,'b':2,'c':3}
inverse = {v: k for k, v in D.items()}
print(inverse)
# {1: 'a', 2: 'b', 3: 'c'}
呵呵,完全一樣的答案。我必須通過驗證碼檢查,這就是爲什麼我遲到了。我會刪除我的答案。 +1。 – ch3ka
對於Python 2.6和更早版本(無字典理解):
d = {'a':1,'b':2,'c':3}
inverse_dict = dict((v,k) for k,v in d.items())
這是假設字典d
的值是哈希的,例如,它不會在這本字典的工作:
>>> 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'
你還會遇到問題,如果值的原始字典的不是唯一,例如
>>> d={'a': 1, 'c': 3, 'b': 2, 'd': 1}
>>> dict((v,k) for k,v in d.items())
{1: 'd', 2: 'b', 3: 'c'}
正是我需要的。謝謝。在手冊中找不到它。 – user1352521
您可以使用馬塔的答案,如果你有Python2.7 +以其它方式使用mhawke的答案。
反轉這樣一個字典只是正常工作,如果源字典的所有值都是唯一的,可哈希
如果值是哈希的,但不是唯一的,你可以做一個字典具有列出的值,而不是
無關緊要,但我仍然不理解那些在某些話題上使用戶對合法混淆的人,即使他/她的堆棧壽命只有一個月。 – nye17
同意。對於新來者問題的積極評價應該至少伴隨着解決問題的方法和/或關於如何改進問題的建議。 –
對不起,重複。我問了一個錯誤的問題。 – user1352521