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实现rest请求api示例
Apr 22 Python
python处理文本文件实现生成指定格式文件的方法
Jul 31 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
python数据封装json格式数据
Mar 04 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
python版DDOS攻击脚本
Jun 12 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
Python 依赖库太多了该如何管理
Nov 08 Python
一篇文章教你用python画动态爱心表白
Nov 22 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封装curl的调用接口及常用函数详解
2018/05/31 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
用js遍历 table的脚本
2008/07/23 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
Python用GET方法上传文件
2015/03/10 Python
初学Python函数的笔记整理
2015/04/07 Python
python标准库os库的函数介绍
2020/02/12 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
html5 input属性使用示例
2013/06/28 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
教师自荐信
2013/12/10 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
个人股份合作协议书
2014/10/24 职场文书
人事局接收函
2015/01/31 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android