排序2-D列表并将其转换为字典

时间:2016-08-02 17:44:42

标签: python dictionary

我有一个2-D [2xn]数组,第一列中有键(重复),第二列中有值。我需要创建一个字典,其中键是唯一的,并且从值中收集值。

最聪明的方法是什么?我应该首先预处理(对组中的键值或其他值进行排序)还是应该将set(keys)放入字典键然后使用值进行操作?或者我应该将keysvalues列表放在字典中并以某种方式“挤压”它?

输入:

[
[Isis, 3],
[Isis, 4],
[Al-Qaeda, 2],
[Isis, 2]
]

期望的输出:

{'Isis':[3,4,2], 'Al-Qaeda':[2]}

2 个答案:

答案 0 :(得分:2)

使用defaultdict

from collections import defaultdict

output = defaultdict(list)
for k,v in input:
    output[k].append(v)

答案 1 :(得分:0)

output = {}
for i in input:
    key = i[0]
    value = i[1]
    if not key in output:
        output[key] = []
    output[key].append(value)