在默认字典中添加值 - Python(或合并)
Adding values in a default dictionary - Python (or merging)
我目前正在编写代码,我想知道是否有办法合并字典值并添加它们:
示例词典:
defaultdict(<class 'list'>, {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]})
注意:例如,1 和 2 代表员工 ID 1 和 2,而 [181,343] 代表不同项目工作的天数。我想合并他们在项目上一起工作的总天数以获得最终输出。
所以它会导致:
defaultdict(<class 'list'>, {'1 and 2': [524], ... )
谢谢!
您可以使用 int
定义 default dictionary
d = collections.defaultdict(int)
然后简单地添加值:
d["1 and 2"] += …
其中 …
是您一直附加到列表的值。上面的工作是因为 int
的默认值是 0;比如列表的默认值是空列表。
这里
data = {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]}
data_with_sum = {k:sum(v) for k,v in data.items()}
print(data_with_sum)
输出
{'1 and 2': 524, '2 and 5': 820, '2 and 6': 1, '1 and 3': 332, '1 and 4': 77, '3 and 4': 395, '3 and 5': 823}
我目前正在编写代码,我想知道是否有办法合并字典值并添加它们:
示例词典:
defaultdict(<class 'list'>, {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]})
注意:例如,1 和 2 代表员工 ID 1 和 2,而 [181,343] 代表不同项目工作的天数。我想合并他们在项目上一起工作的总天数以获得最终输出。
所以它会导致:
defaultdict(<class 'list'>, {'1 and 2': [524], ... )
谢谢!
您可以使用 int
d = collections.defaultdict(int)
然后简单地添加值:
d["1 and 2"] += …
其中 …
是您一直附加到列表的值。上面的工作是因为 int
的默认值是 0;比如列表的默认值是空列表。
这里
data = {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]}
data_with_sum = {k:sum(v) for k,v in data.items()}
print(data_with_sum)
输出
{'1 and 2': 524, '2 and 5': 820, '2 and 6': 1, '1 and 3': 332, '1 and 4': 77, '3 and 4': 395, '3 and 5': 823}