我已使用以下代码从键列表中初始化字典
z=df1[2].value_counts().keys().tolist()
mydict=dict.fromkeys(z,None)
我已经用过
`value=df2[2].value_counts().keys().tolist()
counts=df2[2].value_counts().tolist()`
for j,items in value:
if mydict.has_key(items):
mydict.setdefault(items,[]).append(counts[j])
它正在产生以下错误
mydict.setdefault(items,[])。append(counts [j]) AttributeError:'NoneType'对象没有属性'append'
答案 0 :(得分:12)
Append适用于数组,但不适用于字典。
要添加到字典中,请使用dict_name['item'] = 3
另一个不错的解决方案(尤其是如果您想一次插入多个项目)将是:dict_name.update({'item': 3})
当您正在使用的类或对象的实例的值为None
时,出现NoneType错误。这可能意味着从未分配过一个值。
此外,我相信您在这里缺少括号:mydict.setdefault(items,]).append(counts[j])
应该是:mydict.setdefault(items,[]).append(counts[j])
答案 1 :(得分:3)
mydict = {}
print(mydict) # {}
附加一个键:
mydict['key1'] = 1
print(mydict) # {'key1': 1}
附加多个键:
mydict.update({'key2': 2, 'key3': 3})
print(mydict) # {'key1': 1, 'key2': 2, 'key3': 3}
答案 2 :(得分:2)
答案 3 :(得分:0)
发生错误的原因是您试图附加到mydict.setdefault()
的结果上,该结果实际上为None,因为该方法不返回任何内容。除此之外,还请注意对python中的字典的其他答案,请不要append