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实现登录人人网并抓取新鲜事的方法
May 11 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
机器学习10大经典算法详解
Dec 07 Python
python使用代理ip访问网站的实例
May 07 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
django rest framework serializers序列化实例
May 13 Python
使用gunicorn部署django项目的问题
Dec 30 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 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中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
vue--vuex详解
2019/04/15 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
JS合并两个数组的3种方法详解
2019/10/24 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
定制FileField中的上传文件名称实例
2017/08/23 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
python异常处理和日志处理方式
2019/12/24 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
Python之多进程与多线程的使用
2021/02/23 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
优秀员工演讲稿
2014/05/19 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
蜗居观后感
2015/06/11 职场文书
安全教育第一课观后感
2015/06/17 职场文书
九年级英语教学反思
2016/02/15 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
解析目标检测之IoU
2021/06/26 Python