举例讲解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'物品。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |