我正在尝试将用户输入的值附加到字典中的列表中,但显示错误:
AttributeError:'str'对象没有属性'append'
有人能找出错误吗?
Dict = {} # an empty dictionary to be filled later
Dict["SomeKey"] = []
Dict["SomeKey"] = input ("Enter a value: ") # it works
Dict["SomeKey"].append(input("Enter another value: ")) # This part gives me error !!!
AttributeError:'str'对象没有属性'append'
答案 0 :(得分:0)
您可能想像这样使用它:
dict["SomeKey"] = [input ("Enter a value: ")]
dict["SomeKey"].append(input('Yet again...'))
因为函数input
返回一个字符串,这意味着dict["SomeKey"]
也是没有append
函数的字符串。
答案 1 :(得分:0)
此追溯信息将帮助您解决问题。
>>> Dict = {}
>>> Dict["SomeKey"] = []
>>> type(Dict["SomeKey"])
list
>>> Dict["SomeKey"] = input ("Enter a value: ") # in here you are change `list` to `str`
Enter a value: 123
>>> type(Dict["SomeKey"])
str
因此错误是正确的'str' object has no attribute 'append'
。 append
在list
上可用。
>>> 'append' in dir(str)
False
>>> 'append' in dir(list)
True
因此,如果您想将Dict["SomeKey"]
保留为list
,只需像在上一行中所做的那样进行更改即可。
答案 2 :(得分:0)
我已经编写了以下代码,只要您在字典中已经有“ SomeKey”并且您要用双引号输入用户输入,它就可以正常工作。
Dict = {}
Dict["SomeKey"] = []
Dict["SomeKey"].append(input("Enter another value:"))
Dict["SomeKey"].append(input("Enter another value:"))
print Dict
O/P
sankalp- ~/Documents python p.py
✔ 2027 00:59:30
Enter another value:"SomeValue1"
Enter another value:"Somevalue2"
{'SomeKey': ['SomeValue1', 'Somevalue2']}
答案 3 :(得分:0)
在示例的上一部分中,您将Dict["SomeKey"]
设置为字符串。
假设您在示例中的第3步中输入了“ foo”作为条目,然后输入了Dict["SomeKey"].append("another_string")
(由于输入的内容可能是我使用的“ another_string”)。然后,它变成“ foo” .append(“ another_string)。但是” foo“是一个字符串,没有.append()
方法。