如何根据Excel电子表格中的列组织字典

时间:2017-04-23 20:22:22

标签: python excel list parsing dictionary

我正在尝试将Excel电子表格中的信息组织成字典。以下是电子表格结构的示例:

Col 1     Col 2
Hello     World
Hello     Earth
Hello     Planet
Hello     Mars
Hello     Moon
Hi        Pluto
Hi        Neptune
Hi        Jupiter

我目前有Python代码可以将每个列导入一个列表,结果如下所示:

['Hello', 'Hello', 'Hello', 'Hi', 'Hi', etc]
['World', 'Earth', 'Planet', 'Mars', 'Moon', etc]

我的最终目标是拥有一个Python字典,其中每个键(Col1的内容)包含映射到的多个值的列表(Col2的内容)。例如:

{
    'Hello': ['World', 'Earth', 'Planet', 'Mars', 'Moon']
    'Hi': ['Pluto', 'Neptune', 'Jupiter']
}

我将如何完成这项工作?

2 个答案:

答案 0 :(得分:1)

如果您已在列表中列有两列:

setdefault

然后只使用普通dict的{​​{1}}方法(或者您也可以使用collections.defaultdict

>>> map = {}
>>> for key, element in zip(col1, col2):
...     map.setdefault(key, []).append(element)
...
>>> map
{'Hello': ['World', 'Earth', 'Planet'], 'Hi': ['Mars', 'Moon']}
>>>

答案 1 :(得分:0)

假设col1col2是列值列表...

result = {}
for key, value in zip(col1, col2):
    if key in result.keys():
        result[key].append(value)
    else:
        result[key] = [value]

zip(col1, col2)合并了两个列表,所以你得到......

[('Hello','World'),('Hello','Earth'),....]

然后我们遍历此列表,如果字典不存在则将其添加到字典中,或者只是附加到列表中。