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基础教程之自定义函数介绍
Aug 29 Python
初步探究Python程序的执行原理
Apr 11 Python
Python实现给qq邮箱发送邮件的方法
May 28 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
Python之qq自动发消息的示例代码
Feb 18 Python
python自动生成sql语句的脚本
Feb 24 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遍历文件夹和文件列表示例分享
2014/03/11 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
javascript jQuery插件练习
2008/12/24 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Python向excel中写入数据的方法
2019/05/05 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
新闻编辑自荐信
2013/11/03 职场文书
外贸采购员求职的自我评价
2013/11/26 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
素质教育培训心得体会
2016/01/19 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis