关于字典列表

时间:2017-10-25 21:01:18

标签: python django

我想填写一本字典:

    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

所以,只有结束时的最后一个对象"对于"保存了。

但我不知道采用合适的合成器。

1 个答案:

答案 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