Python AttributeError: 'dict' object has no attribute 'append'

问题描述 投票:0回答:4

我正在创建一个循环,以便将用户输入的值连续附加到字典中,但我收到此错误:

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

到目前为止这是我的代码:

    for index, elem in enumerate(main_feeds):
        print(index,":",elem)
        temp_list = index,":",elem
    li = {}
    print_user_areas(li)

    while True:
        n = (input('\nGive number: '))


        if n == "":
          break
        else:
             if n.isdigit():
               n=int(n)
               print('\n')
               print (main_feeds[n])

               temp = main_feeds[n]
               for item in user:


                  user['areas'].append[temp]

有什么想法吗?

python dictionary for-loop tuples
4个回答
32
投票

如错误消息所示,Python 中的字典不提供追加操作。

您可以改为将新值分配给字典中各自的键。

mydict = {}
mydict['item'] = input_value

如果您想在输入值时附加值,您可以改用列表。

mylist = []
mylist.append(input_value)

你的行

user['areas'].append[temp]
看起来像是在尝试访问键值为
'areas'
的字典,如果你改为使用列表,你应该能够执行追加操作。

改用列表:

user['areas'] = []

关于这一点,您可能想检查使用

defaultdict(list)
来解决您的问题的可能性。 看这里


2
投票

如错误提示,

append
不是方法或属性,这意味着您不能在字典
append
中调用
user
。 而不是

user['areas'].append[temp]

使用

user['areas'].update[temp]

0
投票

正如错误和其他人所指出的,'dict' 对象没有'append' 属性。

但是如果你真的看到一个 Python 代码有

dict["key"].append(value)
行,那是因为这个键里面有一个
list
,你想专门在键里面的列表中添加值(不是添加新的密钥本身的条目)。那么
dict["key"].append(value)
无论如何都会起作用。


-6
投票

或者 如果键尚未添加到字典,请使用 dict.setdefault() :

dict.setdefault(key,[]).append(value)

或使用,如果您已经设置了密钥:

dict[key].append(value)

来源:stackoverflow 答案

© www.soinside.com 2019 - 2024. All rights reserved.