我想填写一本字典:
recruitment_dict = {}
for relation in Relation.objects.filter(on_team=Team.objects.get(owner=request.user)):
if relation.recruitment is True:
key = relation.on_game.guid
value = [relation.on_plateform.guid, relation.recruitment]
recruitment_dict[key] = value
recruitment_dict
返回此词典:
{'A': ['b', True], 'B': ['b', True], 'C': ['b', True]}
但缺少一些价值观。有时,我应该有这样的事情:
{'A': ['b', True], 'A': ['c', True], 'B': ['b', True], 'C': ['b', True]}
我认为问题是因为我使用:
recruitment_dict[key] = value
所以,只有结束时的最后一个对象"对于"保存了。
但我不知道采用合适的合成器。
答案 0 :(得分:0)
将此添加到您的代码中:
if key in recruitment_dict.keys():
recruitment_dict[key].append(value)
else:
recruitment_dict[key] = value
原因已经在其他人的问题评论中得到了解释。
如果您希望字典看起来像这样:
{'A': [['b', True],['c', True]], 'B': ['b', True], 'C': ['b', True]}
然后您可以使用以下内容。
if key in recruitment_dict.keys():
recruitment_dict[key] = [recruitment_dict[key], value]
else:
recruitment_dict[key] = value