Python反转字典的键和值怎么做?Python字典反转方法是什么

python字典反转和其他序列元素反转是有很大差别的,因为其他序列反转都是将元素后面的放到前面去,而python字典反转而是将其键值对进行互换 。那么下面有详细python反转字典键和值的方法,感兴趣和想学习的小伙伴就一起往下看看吧 。

Python反转字典的键和值怎么做?Python字典反转方法是什么

文章插图
一、反转字典要求
而字典反转也是有一定要求的,因为python字典对于值是没有任何限制的,但是字典键却有数据类型限制 。所以在反转字典键和值时,需要判断字典值数据类型是否为元组、字符串和数字,因为只有这三个可以信息hash处理的数据类型对象才能够作为字典键 。
二、反转字典方法
在定义好字典对象之后,根据不同的键值对数据,对字典进行反转操作使用的方法也不同 。
1.当明确知道字典值不会重复并且都是元组、字符串和数字这三种类型时,就可以调用方法map()了 。该方法可以让序列中的对象都执行一次函数并返回结果,而在这个方法之中是通过字典对象调用item()方法把键和值都取出来 。这样反转之后就是值在前而键在后,那么在外部调用dict()方法即可实现反转字典,代码如下所示:
my_dict = {"brand": "Ford","model": "Mustang","year": 1964}my_inverted_dict = dict(map(reversed, my_dict.items()))print(my_inverted_dict){'Ford': 'brand', 'Mustang': 'model', 1964: 'year'}2.另外一种情况对应的自然就是字典值存在不是唯一值了,那么就需要先生成一个空字典 。然后使用for循环迭代原来的字典取出键和值,使用append()方法向这个字典中添加键值对,不过是将原来的值作为现在字典的键 。这样就可以去重了,代码如下所示:
【Python反转字典的键和值怎么做?Python字典反转方法是什么】from collections import defaultdictmy_inverted_dict = defaultdict(list){my_inverted_dict[v].append(k) for k, v in my_dict.items()}以上就是关于“Python反转字典的键和值怎么做?Python字典反转方法是什么”的全部内容了,希望对你有所帮助 。

    推荐阅读