Python-在字典中为一个键附加多个值

发布于 2021-02-02 23:12:15

我是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  
关注者
0
被浏览
115
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果我可以重新表述你的问题,你想要的是一本以年份为键的字典,以及一个包含每年与该年份相关的值列表的数组,对吗?这是我的处理方式:

    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]
    }
    

    通常,创建“并行数组”是不好的编程习惯,在这种情况下,项目具有相同的索引而不是包含它们的容器的适当子代,从而使项目彼此隐式关联。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看