在蟒蛇,我想建立使用字典get方法在默认情况下提供一个空列表数组的字典,然后用信息,例如填充:Python:使用Dictionary get方法默认返回空列表返回None!
dict = {}
for i in range(0, 10):
for j in range(0, 100):
dict[i] = dict.get(i, []).append(j)
然而,当我尝试上面的代码我没有得到任何异常,但我的名单结束了类似如下:
AttributeError: 'NoneType' object has no attribute 'append'
列表有一个附加的方法,所以我简化我的测试以下:
dict = {}
for i in range(0, 10):
dict[i] = dict.get(i, []).append(i)
输出功率为以下几点:
{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
所以我的问题是,默认情况下,为什么dict.get(I,[])返回无,而不是[]?做dict.get(我,列表())有同样的问题,所以我有点难住。
请不要使用'dict'作为变量名。它与内置的'dict'类相冲突。 – 2011-04-24 17:49:45
我通常不这样做,我只是想清楚变量是什么。 – Danielb 2011-04-24 18:03:07
你不想''dict [i] ='在'setdefault'前面。看到我编辑的答案。 – Gabe 2011-04-24 18:14:28