举例讲解Python中字典的合并值相加与异或对比
|
字典合并值相加
def union_dict(*objs):
_keys = set(sum([obj.keys() for obj in objs],[]))
_total = {}
for _key in _keys:
_total[_key] = sum([obj.get(_key,0) for obj in objs])
return _total
obj1 = {'a':1,'b':2,'c':3}
obj2 = {'a':1,'b':3,'d':4}
print union_dict(obj1,obj2)
{'a': 2,'c': 3,'b': 5,'d': 4}
sum([obj.keys() for obj in objs],[])这句可能不太好理解。 >>sum([[1,2,3],[4,5]],[]) [1,3,4,5] 对字典diff("异或")
def symmetric_difference(_oldobj,_newobj):
_oldkeys = _oldobj.keys()
_newkeys = _newobj.keys()
_diff = {}
for _key in set(_oldkeys + _newkeys):
_val = _newobj.get(_key,0) - _oldobj.get(_key,0)
if _val:
_diff[_key] = _val
return _diff
oldobj = {'a':1,'c':3}
newobj = {'a':1,'d':4}
print symmetric_difference(oldobj,newobj)
输出
{'b': 1,'d': 4,'c': -3}
代表玩家得到了1个'b'物品,4个'd'物品,失去了3个'c'物品。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
