我在尝试追加字典方面遇到了一些麻烦,我真的不知道如何使用它,因为每次我尝试运行我的代码时,它都说“'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):"))
任何人都知道如何在字典中使用附加内容?
答案 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()
然后我们可以像许多用户想要的那样追加被提名者。