python-如何解决KeyError:2?

Posted

技术标签:

【中文标题】python-如何解决KeyError:2?【英文标题】:python-How to solve KeyError: 2? 【发布时间】: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 defaultdict d = defaultdict(lambda: []) 首先,您不应该重新定义保留名称,如dict,因为您将无法进一步使用原始对象。二、dict.[0].append(1)在语法上无效 请编辑您的问题以显示您使用的实际代码和回溯。 @schwobaseggl:或者只是d = defaultdict(list):不需要lambda @MarkDickinson 啊,这更直观。谢谢! 【参考方案1】:

为了给所有键设置一个通用的默认值,你可以使用defaultdict

from collections import defaultdict

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

【讨论】:

以上是关于python-如何解决KeyError:2?的主要内容,如果未能解决你的问题,请参考以下文章