2015-04-07 108 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