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之总结参数的传递
Oct 10 Python
跟老齐学Python之类的细节
Oct 13 Python
Python中subprocess的简单使用示例
Jul 28 Python
利用Python如何生成hash值示例详解
Dec 20 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
python sorted函数的小练习及解答
Sep 18 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
如何使用python包中的sched事件调度器
Apr 30 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 excel类 phpExcel使用方法介绍
2010/08/21 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
layui分页效果实现代码
2017/05/19 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
js实现图片实时时钟
2020/01/15 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Django中Forms的使用代码解析
2018/02/10 Python
Python实现常见的回文字符串算法
2018/11/14 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
python实现代码统计器
2019/09/19 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
AJAX的全称是什么
2012/11/06 面试题
生产厂厂长岗位职责
2013/12/25 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
体育口号大全
2014/06/18 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
毕业生应聘求职信
2014/07/10 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
个人年度总结报告
2015/03/09 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
Python Django项目和应用的创建详解
2021/11/27 Python
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL