我正在尝试将名字附加到一个空列表中,该列表包含一个空字符串和一个空列表。我想使用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'
friendsNum
列表中删除字符串引号,然后进行附加操作即可。因为除非使用join()
,否则无法将任何内容附加到空字符串。 - de_classified("", [])
的第一个成员,即字符串。您无法更改该字符串 - 元组是不可变的。您不能将另一个对象重新分配到元组中的位置。这是第一个问题。第二个问题是字符串也是不可变的,不支持像列表一样的append()
方法。@Imm - 也许您想在元组的位置使用列表(它们可以被更新),并用tempName替换空字符串。 - Todd