当我尝试为存储在词典列表中的特定词典分配值时,我遇到了一个问题,该列表中的每个词典都会更新。我试图逐年跟踪项目完成步骤,使用列表的索引作为项目年份(除了0 =年1等)
列表创建如下:
results = [{'status':{'reports': False, 'collection': False, 'workshops':False}, 'dates':{'reports':'', 'collection':'','workshops':''}}] * years
其中年份是传递给该职能的项目年数。
我最终迭代了里程碑字典,寻找完成里程碑,如下所示:
for milestone in data:
if data['name'] == 'report completion':
if data['completed'] == True:
year = determineYear(x, y) #Pass some info from the milestone to determine which year of the project
results[year]['status']['reports'] = True
results[year]['dates']['reports'] = data['date']
缩进没有正确完成,但我认为你得到了要点。
一切似乎都能正常运作。 index(year)
正在正确计算,没有额外的循环或任何内容,但列表最终看起来像这样:
[{'status': {'collection': False, 'workshops': False, 'reports': True}, 'dates': {'collection': '', 'workshops': '', 'reports': '03/10/2016'}},
{'status': {'collection': False, 'workshops': False, 'reports': True}, 'dates': {'collection': '', 'workshops': '', 'reports': '03/10/2016'}},
{'status': {'collection': False, 'workshops': False, 'reports': True}, 'dates': {'collection': '', 'workshops': '', 'reports': '03/10/2016'}}]
因此数据存储在列表中的每个字典中。这是我第一次尝试这样的设置,所以我可能会遗漏一些东西。