如何将字符串附加到字典中的列表

时间:2018-04-16 02:03:18

标签: python list dictionary append

我在尝试追加字典方面遇到了一些麻烦,我真的不知道如何使用它,因为每次我尝试运行我的代码时,它都说“'str'对象没有属性'追加'”......我有类似的东西......

oscars= {
'Best movie': ['The shape of water','Lady Bird','Dunkirk'],
'Best actress':['Meryl Streep','Frances McDormand'],
'Best actor': ['Gary Oldman','Denzel Washington']
}

所以我想创建一个新的类别,然后我想创建一个循环,用户可以输入他想要的任意数量的提名者......

   newcategory=input("Enter new category: ")
   nominees=input("Enter a nominee: ")
   oscars[newcategory]=nominees
   addnewnominees= str(input("Do you want to enter more nominees: (yes/no):"))
   while addnewnominees!= "No":
       nominees=input("Enter new nominee: ")
       oscars[newcategory].append(nominees)
       addnewnominees= str(input("Do you want to enter more nominees: (yes/no):"))

任何人都知道如何在字典中使用附加内容?

3 个答案:

答案 0 :(得分:2)

您无法附加到字符串。首先形成一个列表,以便稍后添加:

oscars[newcategory] = [nominees]

答案 1 :(得分:1)

如前所述,如果您将键的值创建为字符串,则不能在其上使用append,但如果您将键的值设为列表,则可以。这是一种方法:

newcategory=input("Enter new category: ")
oscars[newcategory]=[]
addnewnominees = 'yes'
while addnewnominees.lower() != "no":
    nominees=input("Enter new nominee: ")
    oscars[newcategory].append(nominees)
    addnewnominees = str(input("Do you want to enter more nominees: (yes/no):"))

答案 2 :(得分:1)

newcategory=input("Enter new category: ")
nominees=input("Enter a nominee: ")
oscars[newcategory]= list()  
oscars[newcategory].append(nominees)
addnewnominees= str(input("Do you want to enter more nominees: (yes/no):"))
while addnewnominees!= "No":
    nominees=input("Enter new nominee: ")
    oscars[newcategory].append(nominees)
    addnewnominees= str(input("Do you want to enter more nominees: (yes/no):"))

说明:

当输入作为stdin传递时,输入始终为string。因此,在oscars[newcategory].append(nominees)行,由于解释器不知道newcategory是一个列表,因此会抛出错误,因此首先我们需要将其定义为列表

oscars[newcategory]= list() 

然后我们可以像许多用户想要的那样追加被提名者。