我正在创建一个循环,以便将用户输入的值连续附加到字典中,但我收到此错误:
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 中的字典不提供追加操作。
您可以改为将新值分配给字典中各自的键。
mydict = {}
mydict['item'] = input_value
如果您想在输入值时附加值,您可以改用列表。
mylist = []
mylist.append(input_value)
你的行
user['areas'].append[temp]
看起来像是在尝试访问键值为 'areas'
的字典,如果你改为使用列表,你应该能够执行追加操作。
改用列表:
user['areas'] = []
关于这一点,您可能想检查使用
defaultdict(list)
来解决您的问题的可能性。 看这里
如错误提示,
append
不是方法或属性,这意味着您不能在字典append
中调用user
。
而不是
user['areas'].append[temp]
使用
user['areas'].update[temp]
正如错误和其他人所指出的,'dict' 对象没有'append' 属性。
但是如果你真的看到一个 Python 代码有
dict["key"].append(value)
行,那是因为这个键里面有一个list
,你想专门在键里面的列表中添加值(不是添加新的密钥本身的条目)。那么dict["key"].append(value)
无论如何都会起作用。
或者 如果键尚未添加到字典,请使用 dict.setdefault() :
dict.setdefault(key,[]).append(value)
或使用,如果您已经设置了密钥:
dict[key].append(value)
来源:stackoverflow 答案