python翻转字典

翻转列表是一种常见的操作,很少要求你翻转字典,但实际工作中,这种情况并不是不存在,原字典内容是

dic = {
    'python': 90,
    'java': 99,
    'php': 95
}

翻转以后的字典内容是

dic = {
    90: 'python', 
    99: 'java', 
    95: 'php'
}

这里,我们只考虑value没有重复值且可hash的情况,接下来,我将尝试使用使用3种方法实现这个操作

方法1, 遍历字典

inverted_dict = {}
for key, value in dic.items():
    inverted_dict[value] = key

print(inverted_dict)

这是最容易想到的一种方案,代码实现起来最普通

方法2, 字典推导式

# 使用字典推导式
inverted_dict = {value: key for key, value in dic.items()}
print(inverted_dict)

使用字典推导式,让代码变得更加简单了

方法3, 结合函数map, reversed

inverted_dict = dict(map(reversed, dic.items()))
print(inverted_dict)

方法3同样只需要一行代码就可以完成翻转,但理解起来相比于推导式稍有难度,reversed函数负责将key-value对翻转,map函数负责处理所有的key-value对,dict负责将map的结果转成字典

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案