2016-11-08 6 views
0

私はスコアボードやランキングリストを印刷するプログラムを持っています。この時点ではチーム名、得点、プレーゲームのリストを持っていますが、range() 。次のように コードが行く:2つのforステートメントがループに入ります

for a in rankinglist: 
    for pos in range(1, 33): 
     print(format(pos) + 
      format(a.name, '>18') + 
      format(str(a.games), '>7') + 
      format(str(a.score), '>11')) 

rankinglistは、チームのリストであるとposは私の意図は、このプリントアウトした1から32までの範囲 次のようになります。

1    team1  0   0 
2    team2  0   0 
3    team3  0   0 
4    team4  0   0 
5    team5  0   0 
6    team6  0   0 
7    team7  0   0 
8    team8  0   0 
9    team9  0   0 
10   team10  0   0 
... 

ではなく、Iループを取得して各チームを32回印刷します。

1    team1  0   0 
2    team1  0   0 
3    team1  0   0 
4    team1  0   0 
5    team1  0   0 
6    team1  0   0 
7    team1  0   0 
8    team1  0   0 
9    team1  0   0 
10   team1  0   0 
11   team1  0   0 
12   team1  0   0 
13   team1  0   0 
14   team1  0   0 
15   team1  0   0 
16   team1  0   0 
17   team1  0   0 
18   team1  0   0 
19   team1  0   0 
20   team1  0   0 
21   team1  0   0 
22   team1  0   0 
23   team1  0   0 
24   team1  0   0 
25   team1  0   0 
26   team1  0   0 
27   team1  0   0 
28   team1  0   0 
29   team1  0   0 
30   team1  0   0 
31   team1  0   0 
32   team1  0   0 

誰でもこれを解決する方法はわかりますか?

+0

2つの 'for'ループは必要ありません.2番目のループでは、' pos'を反復するだけで、 'a'は変更されません。これは' team1'が出力するためです! – Arman

答えて

2

この点についてはどうですか?

for pos, a in enumerate(rankinglist, 1): 
    print(format(pos) + 
     format(a.name, '>18') + 
     format(str(a.games), '>7') + 
     format(str(a.score), '>11')) 
+3

私はこれが正しいことに同意します。ちょうどその質問が1から始まるインデックスを求めたので、 'enumerate(rankinglist、1)'が必要であることに注意してください。 – yoniLavi

+0

あなたは絶対に正しいです。私はその反応を編集した。ありがとう! =) –

関連する問題