gpt4 book ai didi

python - 使用 Dictionary get 方法返回空列表默认​​返回 None

转载 作者:太空狗 更新时间:2023-10-29 17:36:07 26 4
gpt4 key购买 nike

在 Python 中,我想使用字典 get 方法构建一个数组字典,默认情况下提供一个空列表,然后用信息填充,例如:

dct = {}
for i in range(0, 10):
for j in range(0, 100):
dct[i] = dct.get(i, []).append(j)

然而,当我尝试上面的代码时,我没有发现异常,但我的列表最终如下所示:

AttributeError: 'NoneType' object has no attribute 'append'

列表有一个 append 方法,所以我将测试简化为以下内容:

dct = {}
for i in range(0, 10):
dct[i] = dct.get(i, []).append(i)

输出如下:

{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}

所以我的问题是为什么 dct.get(i, []) 默认返回 None 而不是 []?做 dct.get(i, list()) 有同样的问题,所以我有点难过。

最佳答案

要解决这个问题,您应该使用 Python 的 defaultdict。第一次使用不存在的键时,defaultdict 构造函数的参数用于创建值(在本例中为列表)。

http://docs.python.org/library/collections.html#defaultdict-examples

from collections import defaultdict 

d = defaultdict(list)
for i in range( 0, 10 ):
for j in range( 0, 100 ):
d[i].append( j )

如果你想做更详细的事情,你也可以将一个函数作为参数传递给 defaultdict。

关于python - 使用 Dictionary get 方法返回空列表默认​​返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com