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,这更直观。谢谢!