Python AttributeError:“dict"对象没有属性“append"

2022-01-20 00:00:00 python dictionary tuples for-loop

问题描述

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

I am creating a loop in order to append continuously values from user input to a dictionary but i am getting this error:

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('
Give number: '))


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

               temp = main_feeds[n]
               for item in user:


                  user['areas'].append[temp]

有什么想法吗?


解决方案

就像错误信息提示的那样,Python 中的字典不提供追加操作.

Like the error message suggests, dictionaries in Python do not provide an append operation.

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

You can instead just assign new values to their respective keys in a dictionary.

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

如果您想在输入值时附加值,则可以使用列表.

If you're wanting to append values as they're entered you could instead use a list.

mylist = []
mylist.append(input_value)

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

Your line user['areas'].append[temp] looks like it is attempting to access a dictionary at the value of key 'areas', if you instead use a list you should be able to perform an append operation.

使用列表代替:

user['areas'] = []

在此说明中,您可能需要检查使用 defaultdict(list) 来解决您的问题的可能性.看这里

On that note, you might want to check out the possibility of using a defaultdict(list) for your problem. See here

相关文章