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

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?

3

3 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

2

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like