我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔在本文中,将要总结dict字典类型的数据翻转的四种方案,代码是基于python的。四种不同的方案中,利用的函数也都是不同的。具体请参考字典类型翻转方案的正文。

苏南大叔:基于python,翻转dict字典类型数据变量的四种方案 - 字典类型翻转
基于python,翻转dict字典类型数据变量的四种方案(图2-1)

苏南大叔的“程序如此灵动”技术博客,记录苏南大叔的代码经验总结。本文测试环境:win10python@3.11.0numpy@1.24.2

前提

为什么要翻转,正常情况下来说,key是数字,value不是数字。但是,有些情况下,使用CountVectorizer统计词频的时候,会出现【key是字符串,而value作为索引数字存在】的情况。对于这种情况,可能就需要对字典进行翻转,以便进一步处理数据。

本文的需求能够实现,需要有个【重要的前提】。那就是:
字典的value没有重复值。如果有重复值的话,翻转后就会产生数据相互覆盖的情况。字典类型的key必然是不可以重复的,value是可以重复的。

例如:下面的这个变量_dict1,就不适合翻转。

_dict1 = {"苏": 1, "南":1 }   # 不适合翻转
_dict2 = {"苏": 1, "南":2 }   # 适合翻转

苏南大叔:基于python,翻转dict字典类型数据变量的四种方案 - dict翻转
基于python,翻转dict字典类型数据变量的四种方案(图2-2)

方案一,推导式

_dict = {"苏": 1, "南": 2, "大": 3, "叔": 4}
_dict2 = {v: k for k, v in _dict.items()}

对于推导式的更详细描述,参考文章:

方案二,zip打包

_dict = {"苏": 1, "南": 2, "大": 3, "叔": 4}
_dict3 = dict(zip(_dict.values(), _dict.keys()))

关于zip函数如何打包的问题,参考文章:

方案三,字典遍历

_dict = {"苏": 1, "南": 2, "大": 3, "叔": 4}
_dict4 = {}
for key, value in _dict.items():
    _dict4[value] = key

对于python中,类数组变量,如何进行遍历的问题,请参考:

方案四,map(reversed,xxx)

reversed是个系统预定义的变量,对其打印输出一下:

print(reversed, type(reversed))

输出:

<class 'reversed'> <class 'type'>
_dict = {"苏": 1, "南": 2, "大": 3, "叔": 4}
_dict5 = dict(map(reversed, _dict.items()))

对于map()的理解,参考文章:

结语

更多苏南大叔的python的经验文章,请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python