2024-04-20 12:43:18 发布
网友
>>> D1 = {'potatoes':2.67,'sugar':1.98,'cereal':5.99,'crisps':1.09} >>> D2 = {'parsley':0.76,'cereal':3.22} >>> D1 = updateDictionaryByIncrementing(D1, D2)
如何根据D2的内容更新D1的键/值?你知道吗
计数器是一种方便的方法(计数不必是整数)
>>> from collections import Counter >>> D1 = {'potatoes':2.67,'sugar':1.98,'cereal':5.99,'crisps':1.09} >>> D2 = {'parsley':0.76,'cereal':3.22} >>> Counter(D1) + Counter(D2) Counter({'cereal': 9.21, 'potatoes': 2.67, 'sugar': 1.98, 'crisps': 1.09, 'parsley': 0.76})
您还可以使用dict.update列出以下内容:
dict.update
>>> D1.update((k, D1.get(k, 0) + v) for k, v in D2.items()) >>> D1 {'potatoes': 2.67, 'parsley': 0.76, 'crisps': 1.09, 'cereal': 9.21, 'sugar': 1.98}
如果要增加字典的值,可以实现updateDictionaryByIncrementing,如下所示:
updateDictionaryByIncrementing
def updateDictionaryByIncrementing(a,b): c = dict() for k,v in b.items(): c[k] = a.get(k,0.0) + v return c
通过使用a字典的get方法,使用默认值处理a没有给定键的值的情况。你知道吗
a
get
您可以使用循环键:
for key in D2: D1[key] = D1.get(key, 0) + D2[key]
或者可以使用collections.Counter()对象:
collections.Counter()
from collections import Counter D1 = dict(Counter(D1) + Counter(D2))
后一种技术的演示:
>>> from collections import Counter >>> D1 = {'potatoes':2.67,'sugar':1.98,'cereal':5.99,'crisps':1.09} >>> D2 = {'parsley':0.76,'cereal':3.22} >>> Counter(D1) + Counter(D2) Counter({'cereal': 9.21, 'potatoes': 2.67, 'sugar': 1.98, 'crisps': 1.09, 'parsley': 0.76}) >>> dict(Counter(D1) + Counter(D2)) {'cereal': 9.21, 'parsley': 0.76, 'sugar': 1.98, 'potatoes': 2.67, 'crisps': 1.09}
计数器是一种方便的方法(计数不必是整数)
您还可以使用
dict.update
列出以下内容:如果要增加字典的值,可以实现
updateDictionaryByIncrementing
,如下所示:通过使用
a
字典的get
方法,使用默认值处理a
没有给定键的值的情况。你知道吗您可以使用循环键:
或者可以使用
collections.Counter()
对象:后一种技术的演示:
相关问题 更多 >
编程相关推荐