基于python,翻转dict字典类型数据变量的四种方案
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔在本文中,将要总结dict
字典类型的数据翻转的四种方案,代码是基于python
的。四种不同的方案中,利用的函数也都是不同的。具体请参考字典类型翻转方案的正文。
苏南大叔的“程序如此灵动”技术博客,记录苏南大叔的代码经验总结。本文测试环境:win10
,python@3.11.0
,numpy@1.24.2
。
前提
为什么要翻转,正常情况下来说,key
是数字,value
不是数字。但是,有些情况下,使用CountVectorizer
统计词频的时候,会出现【key
是字符串,而value
作为索引数字存在】的情况。对于这种情况,可能就需要对字典进行翻转,以便进一步处理数据。
本文的需求能够实现,需要有个【重要的前提】。那就是:
字典的value
没有重复值。如果有重复值的话,翻转后就会产生数据相互覆盖的情况。字典类型的key
必然是不可以重复的,value
是可以重复的。
例如:下面的这个变量_dict1
,就不适合翻转。
_dict1 = {"苏": 1, "南":1 } # 不适合翻转
_dict2 = {"苏": 1, "南":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
的经验文章,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。