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编写检测数据库SA用户的方法
Jul 11 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
python中OrderedDict的使用方法详解
May 05 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
python 寻找list中最大元素对应的索引方法
Jun 28 Python
【python】matplotlib动态显示详解
Apr 11 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
curl和libcurl的区别简介
2015/07/01 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
webpack写jquery插件的环境配置
2017/12/21 jQuery
Js面试算法详解
2018/04/08 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
python Django批量导入不重复数据
2016/03/25 Python
Python中的变量和作用域详解
2016/07/13 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
Python3实现转换Image图片格式
2018/06/21 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
小学作文评语大全
2014/04/21 职场文书
技术负责人岗位职责
2015/02/10 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
Python3 如何开启自带http服务
2021/05/18 Python