Python AttributeError:“dict”对象没有属性“append”
Posted
技术标签:
【中文标题】Python AttributeError:“dict”对象没有属性“append”【英文标题】:Python AttributeError: 'dict' object has no attribute 'append' 【发布时间】:2018-06-22 09:37:00 【问题描述】:我正在创建一个循环,以便将用户输入中的值连续附加到字典,但我收到此错误:
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]
有什么想法吗?
【问题讨论】:
好吧,dict 没有 append 方法。即使是这样,你也不能用方括号来调用它。 使用 defaultdict 代替(其中包含列表) 您使用字典的键为字典赋值:user['areas'] = temp
。只有当 user[areas]
已经是一个列表时,您的代码才能工作。如果您需要它是一个列表,请先构建列表,然后将该列表分配给键。
【参考方案1】:
如错误消息所示,Python 中的字典不提供追加操作。
您可以改为将新值分配给字典中它们各自的键。
mydict =
mydict['item'] = input_value
如果您想在输入值时附加值,您可以改用列表。
mylist = []
mylist.append(input_value)
您的user['areas'].append[temp]
行似乎正在尝试访问键值为'areas'
的字典,如果您改为使用列表,您应该能够执行追加操作。
使用列表代替:
user['areas'] = []
在此说明中,您可能想检查一下使用defaultdict(list)
解决您的问题的可能性。 See here
【讨论】:
Python 中的字典 do 提供了一个update
方法。所以,如果你想添加更多的键值对:dict.update('another_key': 'another_value')
。也许在这里有价值。 update
将覆盖现有的同名键,所以caveat emptor。
非常真实的马特!不过,看起来他们只是想在此处附加值。【参考方案2】:
正如错误提示的那样,append
不是方法或属性,这意味着您不能在字典 user
中调用 append
。
而不是
user['areas'].append[temp]
使用
user['areas'].update[temp]
【讨论】:
【参考方案3】:要么 如果键尚未添加到字典中,请使用 dict.setdefault() :
dict.setdefault(key,[]).append(value)
或使用,如果您已经设置了密钥:
dict[key].append(value)
来源:*** 答案
【讨论】:
您至少应该添加一个链接,指向您所指的 *** 的答案以上是关于Python AttributeError:“dict”对象没有属性“append”的主要内容,如果未能解决你的问题,请参考以下文章
初学者 Python:AttributeError:'list' 对象没有属性
Python:AttributeError:'str'对象没有属性'datetime'
Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'