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

标签 python dictionary key-value

我是 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/

相关文章:

python - 计算 python 列表中重复元组的最有效方法

python - 有趣的 Python 习语,用于删除单个条目列表中的唯一项

python - 如何使用 python-docx 正确缩进?

python - 如何使用内键 :value pair 将字典列表转换为字典字典

java - 在单个节点中运行 Spark 计算

python - 使用 Python 插入变量 MySQL,不工作

c++ - 对象在构造函数之后不存在?

python - 从 python 字典中删除\n

python - 如何在 python 中解压键值对?

javascript - 您能解释一下下面两个 JavaScript 代码片段之间的区别吗?