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实现的RSS阅读器实例
Jul 25 Python
独特的python循环语句
Nov 20 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python基于http下载视频或音频
Jun 20 Python
python requests.post带head和body的实例
Jan 02 Python
Python中捕获键盘的方式详解
Mar 28 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
如何用python插入独创性声明
Mar 31 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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修改Linux或Unix口令的方法分享
2012/01/30 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
Prototype Number对象 学习
2009/07/19 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
webpack打包js的方法
2018/03/12 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
一道python走迷宫算法题
2018/01/22 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
django使用LDAP验证的方法示例
2018/12/10 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
利用Python多线程实现图片下载器
2022/03/25 Python