python如何解决KeyError:2?

python如何解决KeyError:2?,python,dictionary,keyerror,Python,Dictionary,Keyerror,我有一张格式为{int:[]} 当我试图将值设置为值列表为空的键值对时,我得到了keyrerror: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 =

我有一张格式为
{int:[]}

当我试图将值设置为值列表为空的键值对时,我得到了
keyrerror: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)

我该怎么办?

要为所有键设置常规默认值,可以使用
defaultdict

from collections import defaultdict

d = defaultdict(list)    
d[0].append(1)

setdefault
为具体键设置默认值,而不是为某一类型的键设置默认值。
defaultdict
可能满足您的目的:
从集合导入defaultdict
d=defaultdict(lambda:[])
首先,您不应该像
dict
那样重新定义保留名称,因为您将无法进一步使用原始对象。其次,
dict[0]。附加(1)
在语法上无效。请编辑您的问题以显示您使用的实际代码和回溯。@Schwobasegggl:或只是
d=defaultdict(list)
:不需要
lambda
@MarkDickinson aw,这更直观。谢谢!