我是 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 - 为字典中的一个键附加多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199171/