我正在尝试将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']
}
我将如何完成这项工作?
答案 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)
假设col1
和col2
是列值列表...
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'),....]
然后我们遍历此列表,如果字典不存在则将其添加到字典中,或者只是附加到列表中。