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语言中的按位运算符
Nov 26 Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python中偏函数partial用法实例分析
Jul 08 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
windows下python连接oracle数据库
Jun 07 Python
Python引用传值概念与用法实例小结
Oct 07 Python
利用Python如何批量更新服务器文件
Jul 29 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
django中嵌套的try-except实例
May 21 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
golang特有程序结构入门教程
Jun 02 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 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
php源码的安装方法和实例
2019/09/26 PHP
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
详解python读取和输出到txt
2019/03/29 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python中包的用法及安装
2020/02/11 Python
python实现数字炸弹游戏
2020/07/17 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
酒店经理职责
2014/01/30 职场文书
2014年元旦活动方案
2014/02/15 职场文书
少儿节目主持串词
2014/04/02 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
国庆节标语大全
2014/10/08 职场文书
网络研修心得体会
2016/01/08 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
Hive日期格式转换方法总结
2022/06/25 数据库
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android