将数据附加到python字典

时间:2018-07-13 12:59:03

标签: python dictionary

我已使用以下代码从键列表中初始化字典 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'

4 个答案:

答案 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)

您可以使用

dict["key"] = value_list 

所以在您的情况下:

mydict["key"] = z

如此处所述: Python docs

答案 3 :(得分:0)

发生错误的原因是您试图附加到mydict.setdefault()的结果上,该结果实际上为None,因为该方法不返回任何内容。除此之外,还请注意对python中的字典的其他答案,请不要append