如何根据Excel电子表格中的列来组织字典
我试图将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]
我的最终目标是创build一个Python字典,其中每个键(Col1的内容)都包含一个映射到的多个值的列表(Col2的内容)。 例如:
{ 'Hello': ['World', 'Earth', 'Planet', 'Mars', 'Moon'] 'Hi': ['Pluto', 'Neptune', 'Jupiter'] }
我将如何去完成这个?
如果你已经在列表中有两列,
>>> col1 = ['Hello', 'Hello', 'Hello', 'Hi', 'Hi'] >>> col2 = ['World', 'Earth', 'Planet', 'Mars', 'Moon']
然后简单地使用普通dict
的setdefault
方法(或者也可以使用collections.defaultdict
)
>>> map = {} >>> for key, element in zip(col1, col2): ... map.setdefault(key, []).append(element) ... >>> map {'Hello': ['World', 'Earth', 'Planet'], 'Hi': ['Mars', 'Moon']} >>>
假设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'),....]
然后,我们循环遍历这个列表,如果它不存在,则将其添加到字典中,如果是,则直接追加到列表中。