python实现两个dict合并与计算操作示例
本文实例讲述了python实现两个dict合并与计算操作。分享给大家供大家参考,具体如下:
用pythonic 的方法,将两个dict合并,并进行计算. 如果key值相同,则将他们的值进行想加,否则保留原来的值.
当然,通常会想到,用循环的方法来做,这是一般人都知道的做法,下面讲一个python dict 内置的方法来实现。
比如有如下两个字典:
Dict A: {'a':1, 'b':2, 'c':3} Dict B: {'b':3, 'c':4, 'd':5}
将他们想加后得到的结果是:
{'a':1, 'b':5, 'c':7, 'd':5}
最简单的办法是使用 collections.Counter
:
>>> from collections import Counter >>> A = Counter({'a':1, 'b':2, 'c':3}) >>> B = Counter({'b':3, 'c':4, 'd':5}) >>> A + B Counter({'c': 7, 'b': 5, 'd': 5, 'a': 1})
Counter 是 dict 的子类,因此你可以像使用dict 一样使用她,比如
>>> C=A+B >>> for item in C: print item,C.get(item)
运行结果:
a 1
c 7
b 5
d 5
本文参考网址: http://docs.python.org/library/collections.html#collections.Counter
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字典操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
python遍历 truple list dictionary的几种方法总结
实例如下: def TestDic1(): dict2 ={'aa':222,11:222} for val in dict2: print val def TestDic2(): dict2 ={'aa':222,11:222} for (key,val) in dict2.items(): print key,":",val def TestList1(): list=[1,2,3,4,5,3,2,'ada','fs3'] for i in range(len(list)): pr
-
Python中如何优雅的合并两个字典(dict)方法示例
前言 字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧. 一行代码合并两个dict 假设有两个dict x和y,合并成一个新的dict,不改变 x和y的值,例如 x = {'a': 1, 'b': 2} y = {'b': 3, 'c': 4} 期望得到一个新的结果Z,如果key相同,则y覆盖x.期望的结果是 >>> z {'a': 1, 'b': 3, 'c':
-
python实现dict版图遍历示例
复制代码 代码如下: #_*_coding:utf_8_import sysimport os class Graph(): def __init__(self, V, E): self.V = V self.E = E self.visited = [] self.dict = {} self.fd = open("input.txt") def initGraph(self): self.vi
-
python dict 相同key 合并value的实例
如下所示: # #### dict中将key相同的字典合并在一个对象里 """ a = {"a": 1, "b": 2, "c": 1} for k, v in a.iteritems(): tmp.setdefault(v, []).append(k) """ tmp = {} objs = OnlineScoringTeacher.objects.filter( entry__mes
-
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 : 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的:但键不行,如果同一个键被赋值两次,后一个值会被记住. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组(列表这样的可变类型不能作为键). 一.字典的创建.访问: dict = {'Name': 'Zara', 'Age': 7,
-
python 字典(dict)遍历的四种方法性能测试报告
python中,遍历dict的方法有四种.但这四种遍历的性能如何呢?我做了如下的测试 l = [(x,x) for x in xrange(10000)] d = dict(l) from time import clock t0=clock() for i in d: t = i + d[i] t1=clock() for k,v in d.items(): t = k + v t2=clock() for k,v in d.iteritems(): t = k + v t3=clock()
-
python字典DICT类型合并详解
本文为大家分享了python字典DICT类型合并的方法,供大家参考,具体内容如下 我要的字典的键值有些是数据库中表的字段名, 但是有些却不是, 我需要把它们整合到一起, 因此有些这篇文章.(非得凑够150个字,我也是没有办法,扯一点昨天的问题吧,话说python中的session就只能在requests库中发挥作用?就不能想asp.net中那样存值,然后设置过期时间以便验证?我原本是想在python中找个与asp.net中的cache差不多功能的库,结果,缓存那块python好像就是redis和
-
python两种遍历字典(dict)的方法比较
python以其优美的语法和方便的内置数据结构,赢得了不少程序员的亲睐.其中有个很有用的数据结构,就是字典(dict),使用非常简单.说到遍历一个dict结构,我想大多数人都会想到 for key in dictobj 的方法,确实这个方法在大多数情况下都是适用的.但是并不是完全安全,请看下面这个例子: 复制代码 代码如下: #这里初始化一个dict>>> d = {'a':1, 'b':0, 'c':1, 'd':0}#本意是遍历dict,发现元素的值是0的话,就删掉>>&
-
对python 合并 累加两个dict的实例详解
比如说有两个dict:x和y 1.比较快的自己写的, def merge_dict(x,y): for k,v in x.items(): if k in y.keys(): buffer[k] += v else: buffer[k] = v 2.调用api,这个慢一点 from collections import Counter X,Y=Counter(x),Counter(y) z=dict(X+Y) 以上这篇对python 合并 累加两个dict的实例详解就是小编分享给大家的全部内容了
-
Python中字典(dict)合并的四种方法总结
本文主要给大家介绍了关于Python中字典(dict)合并的四种方法,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型. 字典类型与序列类型的区别: 1. 存取和访问数据的方式不同. 2. 序列类型只用数字类型的键(从序列的开始按数值顺序索引
-
Python中实现两个字典(dict)合并的方法
本文实例讲述了Python中实现两个字典(dict)合并的方法,分享给大家供大家参考.具体方法如下: 现有两个字典dict如下: dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} 合并两个字典得到类似: {1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]} 方法1: dictMerged1=dict(dict1.items()+dict2.items())
-
python实现在遍历列表时,直接对dict元素增加字段的方法
example: for item in warehouse_list: warehouse_id = item['warehouse_id'] warehouse = Warehouse.objects.get(id=warehouse_id) item['warehouse_owner_id'] = warehouse.owner_id item['warehouse_name'] = warehouse.warehouse_name 这个功能实在太强大了,python好棒. 以上这篇pyt
随机推荐
- AngularJS页面传参的5种方式
- 举例详解Python中的split()函数的使用方法
- 详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
- 易语言基础教程之简单代码的编写
- Java实现求二叉树的深度和宽度
- 了解Java虚拟机JVM的基本结构及JVM的内存溢出方式
- php 防止单引号,双引号在接受页面转义
- Java 正则表达式详细使用
- python根据时间生成mongodb的ObjectId的方法
- js跨域问题之跨域iframe自适应大小实现代码
- vue.js移动端tab组件的封装实践实例
- JS实现的左侧竖向滑动菜单效果代码
- Google (Local) Search API的简单使用介绍
- JavaScript中的new的使用方法与注意事项
- android 版本检测 Android程序的版本检测与更新实现介绍
- Spring MVC 与 CORS跨域的详细介绍
- java时间日期使用与查询代码详解
- 利用angular、react和vue实现相同的面试题组件
- Android Loader的使用以及手机通讯录的获取方法
- python3+PyQt5 实现Rich文本的行编辑方法