程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用列表生成具有默认值的字典并向其附加值时出错

发布于2023-11-17 20:50     阅读(1170)     评论(0)     点赞(15)     收藏(3)


在 python 字典中,我们可以检查键是否存在并分配一个默认值,如“0”,并且可以进行任何加法、减法,如下所示

d['a'] = d.get('a',0) + 1

在这里,我想要将空列表作为默认值和追加值一行实现给出错误,说 None 类型没有append()

d['a'] = d.get('a',[]).append(1)

期待d{'a':[1]}

通过以下实现可以达到上述结果

d['a'] = d.get('a',[])
d['a'].append(1)

为什么会发生这种情况?

为什么第一行执行出错而第二行执行没有错误?


解决方案


返回什么d.get('a',[]).append(1)

None

所以你分配Noned['a']

list.append()对列表进行就地修改。

使用defaultdict

from collections import defaultdict

d = defaultdict(list)
d['a'].append(1)


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2039297/8605509726b4d5cd97e7/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

15 0
收藏该文
已收藏

评论内容:(最多支持255个字符)