【发布时间】:2020-06-14 09:00:45
【问题描述】:
我正在尝试将名称附加到具有空字符串和空列表的空列表中。 我想使用for循环或能够通过friendsNum列表的循环进行迭代,并且在字符串括号中将插入来自peoplenames列表的随机名称,即i [0],然后在列表中称为friendnames的两个随机名称之后空列表将是字符串之后的 i[1] ,并一直持续到最后一个列表。
import random
friendsNum = [("",[]),("",[]),("",[]),("",[])]
peopleNames = ["Alvin","Danny","Maria","Lauren"]
friendNames = ("john","matt","will","mario","wilma","shannon","mary","jordan")
newList = friendsNum
tempName = ()
temp = ()
for i in friendsNum:
tempName = random.sample(peopleNames,1)
temp = random.sample(friendNames,2)
newList = i[0].append(tempName)
newList = i[1].append(temp)
这个for循环迭代之后,会是这个样子。
friendsNum = [("Johnny",["john","matt"]),
("Zach",["wilma","shannon"]),
("Dawn",["mary","jordan"]),
("Max",["will","john"])]
我不断收到无法从行中附加字符串对象的错误
newList = i[0].append(tempName)
newList = i[1].append(temp)
对于我应该使用的循环,我是否接近这个错误?
下面的错误信息
newList = i[0].append(tempName)
AttributeError: 'str' object has no attribute 'append'
【问题讨论】:
-
@Imm,请附上您看到的错误消息。
-
@Todd 放在最后,我希望我的问题对于我想要做的事情很清楚。我不确定我正在尝试做的事情是否可行。
-
只需从
friendsNum列表中删除字符串引号,然后追加应该可以工作,因为除非它是join(),否则您不能将某些内容附加到空字符串。 -
行
i[0].append(tempName)正在访问元组("", [])的第一个成员,这是一个字符串。您无法更改该字符串 - 元组是不可变的。您不能将另一个对象重新分配给元组中的位置。这是第一个问题。第二个是不可变的字符串不支持append(),就像列表一样。 @Imm - 也许您想使用列表代替元组(它们可以更新)并用 tempName 替换空字符串。
标签: python string list for-loop