2017-02-17 127 views
0

填充他們這是我的代碼:二維數組以及如何與一個維數組

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]) 

我得到

[ '喬治', '喬治'],[ '保', '保羅'],[ 'John','John'],['Ringo','Ringo'],['Bryan','Bryan']]沒有任何錯誤(這只是爲了測試數組是否被製作)。

我想作這樣的:

[ '喬治',17],[ '保',19],[ '約翰',23],[ '林戈',25],[ '布萊恩',35]]

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

回答

2

與行scoreBoard[i].append(names[i]),您添加一個元素,而不是一個列表。因此,下一行scoreBoard[i][1]= userScores[i]會導致錯誤,因爲它指的是names[i]的第二個元素,它只是一個字符串。

最緊湊的方式做你想要將

for name, score in zip(names, userScores): 
    scoreBoard.append([name, score]) 
+0

非常感謝你,這非常有幫助! –

1
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']] 
+0

謝謝你什麼,這也是非常有益,因爲我很新的Python! –

+0

@ShannonR我2,首先我討厭這種語言,但我學會了尊重它。 –

相關問題