Python合并字典键值并去除重复元素的实例


Posted in Python onDecember 18, 2016

假设在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合并字典键值并去除重复元素的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
利用Python演示数型数据结构的教程
Apr 03 Python
python 遍历字符串(含汉字)实例详解
Apr 04 Python
Python 含参构造函数实例详解
May 25 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
多个python文件调用logging模块报错误
Feb 12 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 #Python
浅谈Python的垃圾回收机制
Dec 17 #Python
谈谈如何手动释放Python的内存
Dec 17 #Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 #Python
深入理解NumPy简明教程---数组2
Dec 17 #Python
深入理解NumPy简明教程---数组1
Dec 17 #Python
Python脚本获取操作系统版本信息
Dec 17 #Python
You might like
新版PHP将向Java靠拢
2006/10/09 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
Python生成验证码实例
2014/08/21 Python
Python 文件处理注意事项总结
2017/04/10 Python
python实现数据图表
2017/07/29 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
python urllib和urllib3知识点总结
2021/02/08 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
小溪流的歌教学反思
2014/02/13 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
小学教师师德承诺书
2014/05/23 职场文书
应用外语系自荐信
2014/06/26 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书