如何将输入值附加到字典的列表中?

时间:2019-08-03 19:19:02

标签: python list dictionary input append

我正在尝试将用户输入的值附加到字典中的列表中,但显示错误:

  

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'

4 个答案:

答案 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'appendlist上可用。

>>> '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()方法。