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

Posted

技术标签:

【中文标题】如何将字符串附加到字典中的列表【英文标题】:How to append strings to a list in a dictionary 【发布时间】:2018-09-25 16:25:17 【问题描述】:

我在尝试追加字典时遇到了一些麻烦,我真的不知道如何使用它,因为每次我尝试运行我的代码时,它都会说“'str' object has no attribute 'append'”...我有这样的东西......

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):"))

有谁知道如何在字典中使用追加?

【问题讨论】:

【参考方案1】:

您不能附加到字符串。首先形成一个列表,以便您以后可以附加到它:

oscars[newcategory] = [nominees]

【讨论】:

虽然在技术上不是追加,但使用my_string += "something to append"可以在字符串上获得相同的“追加”结果 @Julien,同意。但这称为字符串连接:)。字符串没有附加方法,但列表有。【参考方案2】:

如前所述,如果将键的值创建为字符串,则不能在其上使用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):"))

【讨论】:

【参考方案3】:
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):"))

解释:

当输入作为标准输入传递时,输入总是string。所以在oscars[newcategory].append(nominees) 行它会抛出一个错误,因为解释器不知道newcategory 是一个列表,所以首先我们需要将它定义为列表

oscars[newcategory]= list() 

然后我们可以根据需要添加被提名者。

【讨论】:

以上是关于如何将字符串附加到字典中的列表的主要内容,如果未能解决你的问题,请参考以下文章

无法将字符串附加到字典键

将字典附加到循环中的列表

如何将列表项附加到数据框中的特定列?

如何将字典键附加到列表中? [复制]

如何从列表中的多个字典附加到具有“内部”字典特定部分的另一个列表?

将值附加到字典中的一个列表 将值附加到字典中的所有列表