簡體   English   中英

2D數組以及如何使用一維數組填充它們

[英]2d arrays and how to populate them with one dimensional arrays

這是我的代碼:

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]

我基本上是在嘗試創建一個包含名稱和userScore的二維數組,我對此進行了很多查找,到目前為止,我一直在使列表分配索引的錯誤超出范圍,或者無法調用“列表”。

如果我從代碼中刪除最后一行,即:

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'] ]而沒有任何錯誤(這只是為了測試是否制作了數組)。

我想做些類似的事情:

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

任何幫助,將不勝感激,謝謝!

使用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']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM