python – 为字典中的一个键附加多个值

参见英文答案 > list to dictionary conversion with multiple values per key?                                    4个
我是python的新手,我每年都有一份年份和价值清单.我想要做的是检查字典中是否已存在年份,如果存在,则将值附加到特定键的值列表中.

例如,我有一个年份列表,每年有一个值:

2010  
2  
2009  
4  
1989  
8  
2009  
7  

我想要做的是填充一个字典,其中年份为键,单个数字数字为值.但是,如果我有2009年列出两次,我想将第二个值附加到该字典中的值列表中,所以我希望:

2010: 2  
2009: 4, 7  
1989: 8  

现在我有以下内容:

d = dict()  
years = []  

(get 2 column list of years and values)

for line in list:    
    year = line[0]   
    value = line[1]  

for line in list:  
    if year in d.keys():  
        d[value].append(value)  
    else:  
        d[value] = value  
        d[year] = year  
最佳答案
如果我可以改写你的问题,你想要的是一个字典,其中包含年份作为键和每年包含与该年相关的值列表的数组,对吧?这是我如何做到的:

years_dict = dict()

for line in list:
    if line[0] in years_dict:
        # append the new number to the existing array at this slot
        years_dict[line[0]].append(line[1])
    else:
        # create a new array in this slot
        years_dict[line[0]] = [line[1]]

你应该在years_dict中得到的结果是一个字典,如下所示:

{
    "2010": [2],
    "2009": [4,7],
    "1989": [8]
}

通常,创建“并行数组”的编程实践很差,其中项目通过具有相同的索引而不是包含它们的容器的适当子项而隐式地相互关联.

转载注明原文:python – 为字典中的一个键附加多个值 - 代码日志