如何根据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'] 

然后简单地使用普通dictsetdefault方法(或者也可以使用collections.defaultdict

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

假设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'),....] 

然后,我们循环遍历这个列表,如果它不存在,则将其添加到字典中,如果是,则直接追加到列表中。