我是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
您可以使用
setdefault
。这是因为setdefault返回列表并在字典上设置它,而且由于列表是可变的,因此追加到setdefault返回的版本与追加到字典本身的版本相同。如果这有任何意义的话。
最好使用^{} (在Python 2.5中添加)。这允许您指定缺少键的默认对象类型(例如
list
)。因此,如果一个键不存在,就不要创建它,然后将它附加到键的值上,而是去掉中间人,直接附加到不存在的键上,以获得所需的结果。
使用数据的快速示例:
这样你就不用担心你是否见过一个与一年相关的数字。您只需附加并忘记,知道丢失的密钥将始终是一个列表。如果密钥已经存在,则它将被附加到。
相关问题 更多 >
编程相关推荐