2015-04-07 48 views
-1

我想交換給定詞典中的鍵和值。例如:如何交換字典中的鍵和值?

dict = {1:'sandeep', 2: 'suresh', 3: 'pankaj'} 

將變爲:

dict1 = {'sandeep': 1, 'suresh': 2, 'pankaj': 3} 
+0

'{VAL:關鍵,VAL在dict.items()鍵}'?但是你不應該命名自己的字典'dict',並且你會**總是擁有獨特的可哈希值嗎? – jonrsharpe

回答

0

使用zip可能比一本字典的理解更好:

dict1 = dict(zip(dict1.values(), dict1.keys())) # better for beginners 
+1

請確保您的原始字典是'dict1'而不是'dict'。 –

+3

爲什麼這更好? – MJeffryes

+0

初學者對一般的理解不太熟悉,但大多數人都熟悉一些內置的方法。 –

0
In [45]: d = {1:'sandeep',2 : 'suresh', 3: 'pankaj'} 

In [46]: {(v, k) for k,v in d.iteritems()} 
Out[46]: {'pankaj': 3, 'sandeep': 1, 'suresh': 2} 

注意使用d作爲變量名稱,而不是的內置dict

還要注意的是,你不能保證唯一性和可鬆條目:

In [47]: d = {1:'sandeep',2 : 'suresh', 3: 'pankaj', 4:'suresh'} 

In [48]: {(v, k) for k,v in d.iteritems()} 
Out[48]: {'pankaj': 3, 'sandeep': 1, 'suresh': 4} 
+1

你爲什麼不直接使用字典理解? '{v:k for k,v in d.iteritems()}' – MJeffryes

+0

@MJeffryes是的,你說得對,這種方式好多了。據此編輯答案。 –

+1

根據標籤「** python-3.x **」'iteritems'應該被'items'取代。 – Matthias