如何使用键合并`defaultdict`中的列表,但保持列表中的列表是分开的?

时间:2017-01-28 16:41:41

标签: python list dictionary for-loop defaultdict

我想合并defaultdict中的列表,其中包含来自两个不同数据/文件的类(键)和列表值。 我想使用唯一键合并列表,但保持列表值分开。

输入:

defaultdict(<class 'list'>, {'1335': ['C', 'T', 'T', 'C', 'T', 'G'], '254': ['T', 'T', 'G', 'C', 'G', 'G']})

defaultdict(<class 'list'>, {'1335': ['A', 'C', 'A', 'A', 'C', 'A'], '254': ['A', 'G', 'A', 'T', 'A', 'A']})

输出:

defaultdict(<class 'list'>, {'1335': ['C', 'T', 'T', 'C', 'T', 'G'], ['A', 'C', 'A', 'A', 'C', 'A'] , '254': ['T', 'T', 'G', 'C', 'G', 'G'], ['A', 'G', 'A', 'T', 'A', 'A']})

谢谢,

1 个答案:

答案 0 :(得分:2)

您希望新词典的值为列表列表。

您可以创建新的defaultdict列表,并附加每个字典中的列表值:

input_dicts = [dict1, dict2]

result = defaultdict(list)

for to_merge in input_dicts:
    for key, value in to_merge:
        result[key].append(value)