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 相关文章推荐
17个Python小技巧分享
Jan 23 Python
Django中使用group_by的方法
May 26 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
python 获取图片分辨率的方法
Jan 08 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
python实现俄罗斯方块小游戏
Apr 24 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
Python yield使用方法示例
2013/12/04 Python
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
python获取服务器响应cookie的实例
2018/12/28 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
flask开启多线程的具体方法
2020/08/02 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
质量月活动策划方案
2014/03/10 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
财务工作失职检讨书
2014/11/21 职场文书
社会实践活动总结格式
2015/05/11 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
MySQL开启事务的方式
2021/06/26 MySQL