相关疑难解决方法(0)

是否有任何pythonic方法来组合两个dicts(为两个键中出现的键添加值)?

例如,我有两个词:

Dict A: {'a': 1, 'b': 2, 'c': 3}
Dict B: {'b': 3, 'c': 4, 'd': 5}
Run Code Online (Sandbox Code Playgroud)

我需要一种pythonic方式"组合"两个dicts,结果是:

{'a': 1, 'b': 5, 'c': 7, 'd': 5}
Run Code Online (Sandbox Code Playgroud)

也就是说:如果两个词中都出现一个键,则添加它们的值,如果它只出现在一个词典中,则保持其值.

python dictionary

460
推荐指数
12
解决办法
12万
查看次数

合并n-dictionaries并在2.6上添加值的最快方法

我有一个字典列表,我想组合成一个字典,并添加列表中每个字典的值.例如:

ds = [{1: 1, 2: 0, 3: 0}, {1: 2, 2: 1, 3: 0}, {1: 3, 2: 2, 3: 1, 4: 5}]
Run Code Online (Sandbox Code Playgroud)

最终结果应该是单个词典:

merged = {1: 6, 2: 3, 3: 1, 4: 5}
Run Code Online (Sandbox Code Playgroud)

我对性能很感兴趣,我正在寻找能够将n-dictionaries列表合并到一个字典中并对值进行求和的最快实现.一个明显的实现是:

from collections import defaultdict

merged = defaultdict(int)

for d in ds:
    for k, v in d.items():
        merged[k] += v
Run Code Online (Sandbox Code Playgroud)

在Python 2.6中有更快的方法吗?

python python-2.6

9
推荐指数
1
解决办法
2437
查看次数

合并两个列表

我在python中有两个列表:

L1=[[100, 1], [101, 2]]
L2=[[100, 3], [101, 4], [102, 5]]
Run Code Online (Sandbox Code Playgroud)

我想合并他们,所以我得到:

L_merge=[[100, 4], [101, 6], [102, 5]]
Run Code Online (Sandbox Code Playgroud)

重要的是两个列表的大小可能不同.

我试图使用字典但无法弄明白.我很高兴使用numpy,pandas或任何其他工具来获得合并.

python merge

3
推荐指数
1
解决办法
413
查看次数

标签 统计

python ×3

dictionary ×1

merge ×1

python-2.6 ×1