【发布时间】:2016-05-25 06:49:06
【问题描述】:
我有一个格式为{int:[]}的字典
当我尝试将值设置为值列表为 NULL 的键值对时,我得到了KeyError: 2
tags = {}
tags.setdefault(int,[])
for tag_id in (db.session.query(PostTagRel).filter(PostTagRel.id == post_id).first().tag_id.split(',')):
tag = db.session.query(Tag).filter(Tag.tag_id == tag_id).first().tag_name
tags[post_id].append(tag)
我该怎么办?
【问题讨论】:
-
setdefault设置具体键的默认值,而不是键的类型。defaultdict可能会满足您的目的:from collections import defaultdictd = defaultdict(lambda: []) -
首先,您不应该重新定义保留名称,如
dict,因为您将无法进一步使用原始对象。二、dict.[0].append(1)在语法上无效 -
请编辑您的问题以显示您使用的实际代码和回溯。
-
@schwobaseggl:或者只是
d = defaultdict(list):不需要lambda。 -
@MarkDickinson 啊,这更直观。谢谢!
标签: python dictionary keyerror