2017-02-17 20 views
0

でそれらを埋めるためにどのようにこれは私のコードです:私は基本的に名前とuserScoreを保持する2次元配列を作成しようとしている2D配列と1次元配列

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] 

、私はこれを見ています今のところ、リスト割り当てインデックスの範囲外のエラーが出てくるか、 '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]) 

私が手

[[ 'ジョージ'、 'ジョージ']、[ 'ポール'、 'ポール']、[ 'John'、 'John']、['Ringo'、 'Ringo']、['Bryan'、 'Bryan']にエラーがないことを確認してください。

[[ 'ジョージ'、17]、[ 'ポール'、19]、[ 'ジョン'、23]、[ 'リンゴ'、25]、[:私はのような何かをしたいと思い

'Bryan'、35]]

ご協力いただきありがとうございます。

答えて

2

scoreBoard[i].append(names[i])の行には、リストではなく1つの要素を追加します。したがって、次の行scoreBoard[i][1]= userScores[i]は、それが単なる文字列であるnames[i]の2番目の要素を参照するため、エラーが発生します。

私のpythonに非常に新しいんだとあなたが欲しいものを行うための最もコンパクトな方法が

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

はありがとうとなり、これも非常に便利です! –

+0

@ShannonR私2、最初に私はこの言語を憎んだが、私はそれを尊重することを学んだ。 –