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 相关文章推荐
python3中set(集合)的语法总结分享
Mar 24 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
Python 监测文件是否更新的方法
Jun 10 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
python带参数打包exe及调用方式
Dec 21 Python
python实现FTP循环上传文件
Mar 20 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
Python函数参数分类原理详解
May 28 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
Python测试框架pytest高阶用法全面详解
Jun 01 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 print EOF实现方法
2009/05/21 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
php session的锁和并发
2016/01/22 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
婚纱摄影师求职信
2014/03/07 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
政府会议通知范文
2015/04/15 职场文书
四年级数学教学反思
2016/02/16 职场文书