Python合并字典键值并去除重复元素的实例
作者:jingxian 时间:2022-02-10 17:48:40
假设在python中有一字典如下:
x={‘a':'1,2,3', ‘b':'2,3,4'}
需要合并为:
x={‘c':'1,2,3,4'}
需要做到三件事:
1. 将字符串转化为数值列表
2. 合并两个列表并添加新的键值
3. 去除重复元素
第1步通过常用的函数eval()就可以做到了,第2步需要添加一个键值并添加元素,第3步利用set集合的性质可以达到去重的效果,不过最后需要再将set集合转化为list列表。代码如下:
x={'a':'1,2,3','b':'2,3,4'}
x['c']=list(set(eval(x['a'])+eval(x['b'])))
del x['a']
del x['b']
print x
输出结果为:
{'c': [1, 2, 3, 4]}
但是在批量处理中,可能会其中一个键值的元素只有1个,导致编译器会识别为int类型,导致出现错误。
x={'a':'1,2,3','b':'2'}
x['c']=list(set(eval(x['a'])+eval(x['b'])))
del x['a']
del x['b']
print x
运行结果为:
Traceback (most recent call last):
File "test.py", line 2, in <module>
x['c']=list(set(eval(x['a'])+eval(x['b'])))
TypeError: can only concatenate tuple (not "int") to tuple
处理方法是,人为地将'b'中的元素复制一份,使编译器不识别为int:
x={'a':'1,2,3','b':'2'}
x['c']=list(set(eval(x['a'])+eval(x['b']+','+x['b'])))
del x['a']
del x['b']
print x
这样就能正常运行。这里利用了set会去去除重复元素的特点,添加了相同的元素。不过,若是'b'中的元素为空,这个方法也会失效。这里需要利用python列表中最后一个元素后面允许跟一个逗号的性质,按如下方法处理即可。
x={'a':'1,2,3','b':''}
x['c']=list(set(eval(x['a']+','+x['b'])))
del x['a']
del x['b']
print x
运行结果:
{'c': [1, 2, 3]}
最后一种方法也能够处理前两种情况。
标签:python,字典,键值
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Mootools 1.2教程(4)——函数
2008-11-18 15:36:00
FF和IE之间7个JavaScript的差异[译]
2009-05-04 18:19:00
C#调用Python的URL接口的示例
2022-08-22 21:49:27
![](https://img.aspxhome.com/file/2023/4/71744_0s.png)
隐藏修改文件时间和文件属性的ASP脚本
2011-03-17 11:15:00
网页切片算法的若干问题
2008-04-17 13:10:00
Myeclipse链接Oracle等数据库时lo exception: The Network Adapter could not establish the connection
2023-07-19 12:40:02
![](https://img.aspxhome.com/file/2023/2/64542_0s.png)
Python 函数返回值的示例代码
2021-10-12 19:30:23
python通过百度地图API获取某地址的经纬度详解
2021-11-06 12:14:45
![](https://img.aspxhome.com/file/2023/6/66456_0s.png)
简述Asp与XML之间的关系
2008-04-17 10:46:00
Python编程中的反模式实例分析
2021-02-01 09:54:26
使用Python编程分析火爆全网的鱿鱼游戏豆瓣影评
2023-10-11 00:35:26
![](https://img.aspxhome.com/file/2023/7/75227_0s.png)
OpenCV 图像梯度的实现方法
2023-07-14 08:25:43
![](https://img.aspxhome.com/file/2023/6/64296_0s.png)
Python多线程与多进程相关知识总结
2021-07-06 21:37:16
![](https://img.aspxhome.com/file/2023/7/71447_0s.jpg)
基于jQuery实现的立体文字渐变效果
2009-05-18 19:15:00
![](https://img.aspxhome.com/file/UploadPic/20095/18/pic-22s.jpg)
Docker实践之python应用容器化
2023-06-07 03:29:43
![](https://img.aspxhome.com/file/2023/7/70187_0s.png)
python基于搜索引擎实现文章查重功能
2022-01-21 19:25:50
![](https://img.aspxhome.com/file/2023/2/67322_0s.png)
asp用正则过滤html标签
2008-01-19 16:34:00
python中异常捕获方法详解
2021-10-30 10:06:09
ASP字符串16进制互转
2008-06-24 12:28:00
JScript 的内存回收
2007-10-16 20:02:00