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 相关文章推荐
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
python发送邮件实例分享
Jul 28 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
如何使用Python实现斐波那契数列
Jul 02 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
python判断元素是否存在的实例方法
Sep 24 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 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
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
从0开始学Vue
2016/10/27 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python docx库用法示例分析
2019/02/16 Python
Django之路由层的实现
2019/09/09 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
UNIX文件类型
2013/08/29 面试题
学校春季防火方案
2014/06/08 职场文书
标准毕业生自荐信
2014/06/24 职场文书
店面出租协议书范本
2014/11/28 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
青岛市的收音机研制与生产
2022/04/07 无线电
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server