二维数组以及如何用一维数组填充它们

2024-05-03 08:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

def SetUpScores():
  scoreBoard= []  
  names = ["George", "Paul", "John", "Ringo", "Bryan"]
  userScores = [17, 19, 23, 25, 35]
  for i in range(0,5):
    scoreBoard.append([])
    for j in range(0,2):
      scoreBoard[i].append(names[i])
      scoreBoard[i][1]= userScores[i]

我基本上是在尝试创建一个二维数组来保存name和userScore,我查了很多,到目前为止,我一直得到list赋值索引超出范围或者'list'不能被调用的错误。你知道吗

如果我从代码中删除最后一行,即:

def SetUpScores():
  scoreBoard= []  
  names = ["George", "Paul", "John", "Ringo", "Bryan"]
  userScores = [17, 19, 23, 25, 35]
  for i in range(0,5):
    scoreBoard.append([])
    for j in range(0,2):
      scoreBoard[i].append(names[i])

我明白了

[['George','George'],['Paul','Paul'],['John','John'],['Ringo','Ringo'],['Bryan','Bryan']]没有任何错误(这只是为了测试数组是否已生成)。你知道吗

我想做一些像:

17岁的乔治、19岁的保罗、23岁的约翰、25岁的林戈、35岁的布莱恩

任何帮助都将不胜感激,谢谢!你知道吗


Tags: infornamesdefrange数组bryanjohn
2条回答

scoreBoard[i].append(names[i])行中,可以添加单个元素,而不是列表。因此,下一行scoreBoard[i][1]= userScores[i]会导致一个错误,因为它引用了names[i]的第二个元素,它只是一个字符串。你知道吗

最简洁的方法就是

for name, score in zip(names, userScores):
    scoreBoard.append([name, score])
names = ["George", "Paul", "John", "Ringo", "Bryan"]
userScores = [17, 19, 23, 25, 35]
L3 =[]
for i in range(0, len(L1)):
    L3.append([L1[i], L2[i]])

print(L3)

Output:
[[17, 'George'], [19, 'Paul'], [23, 'John'], [25, 'Ringo'], [35, 'Bryan']]

相关问题 更多 >