me4*_*e45 43 python dictionary key
说我有这样的字典:
my_dict = {2:3, 5:6, 8:9}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以切换键和值来获得:
{3:2, 6:5, 9:8}
Run Code Online (Sandbox Code Playgroud)
GWW*_*GWW 75
my_dict2 = dict((y,x) for x,y in my_dict.iteritems())
Run Code Online (Sandbox Code Playgroud)
如果您使用的是python 2.7或3.x,则可以使用字典理解:
my_dict2 = {y:x for x,y in my_dict.iteritems()}
Run Code Online (Sandbox Code Playgroud)
编辑
正如JBernardo的评论中所指出的,对于python 3.x,您需要使用items而不是iteritems
小智 8
my_dict = { my_dict[k]:k for k in my_dict}
Run Code Online (Sandbox Code Playgroud)
试试这个:
my_dict = {2:3, 5:6, 8:9}
new_dict = {}
for k, v in my_dict.items():
new_dict[v] = k
Run Code Online (Sandbox Code Playgroud)
使用此代码(通过修改)从Python中接受的答案反向/反转映射:
dict((v,k) for k, v in my_dict.iteritems())
Run Code Online (Sandbox Code Playgroud)
请注意,这假定原始字典中的值是唯一的.否则,您最终会在结果字典中使用重复键,这是不允许的.
并且,正如@wim指出的那样,它还假设值是可清除的.如果您不确定什么是可用的,那么请参阅Python词汇表.
也许:
flipped_dict = dict(zip(my_dict.values(), my_dict.keys()))