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' This is my code so far:
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] Any ideas?
33 Answers
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) 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.
Using a list instead:
user['areas'] = [] On that note, you might want to check out the possibility of using a defaultdict(list) for your problem. See here
As the error suggests, append is not a method or attribute, meaning you cannot call append in the dictionary user. Instead of
user['areas'].append[temp] Use
user['areas'].update[temp] Either use dict.setdefault() if the key is not added yet to dictionary :
dict.setdefault(key,[]).append(value) or use, if you already have the keys set up:
dict[key].append(value) source: stackoverflow answers
1