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