web-dev-qa-db-ja.com

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

ユーザー入力から辞書に継続的に値を追加するためにループを作成していますが、次のエラーが発生します。

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]

何か案は?

4
anonymous

エラーメッセージが示唆するように、Pythonの辞書は追加操作を提供しません。

代わりに、辞書のそれぞれのキーに新しい値を割り当てることができます。

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

入力時に値を追加したい場合は、代わりにリストを使用できます。

_mylist = []
mylist.append(input_value)
_

行_user['areas'].append[temp]_は、キー_'areas'_の値で辞書にアクセスしようとしているように見えます。代わりにリストを使用する場合は、追加操作を実行できるはずです。

代わりにリストを使用:

_user['areas'] = []
_

その点については、問題に対してdefaultdict(list)を使用する可能性を確認することをお勧めします。 こちらをご覧ください

5