公開日:
Pythonでリストの要素を1行に5つ表示してみる
Pythonでリスト内の要素を1行に5つ表示することを考えます。
• はじめに
range()
を使ったループについて復習します。以下のコードは、for i in range(50):
という記述によって、処理を50回ループするコードです。
def test():
num = 0
for i in range(50):
 print(i)
test()
num = 0
for i in range(50):
 print(i)
test()
このコードを実行すると、以下のように表示されます。
0
1
2
3
…
47
48
49
1
2
3
…
47
48
49
i
の範囲は、0~49です。(0~50ではないので要注意。)print(i)
は、0から49まで、計50回実行されることになります。
• リストを作る
#code1.pyを応用して、リストを作成することを考えます。以下に、"0, "1", ..., "48", "49" という要素が格納されたリストを作るコードを示します。
[code2.py]
def makeList():
num = 0
buf = []
for i in range(50):
 buf.append('"' + str(num) + '"')
 num = num + 1
return buf
li = makeList()
for x in li:
print(x)
num = 0
buf = []
for i in range(50):
 buf.append('"' + str(num) + '"')
 num = num + 1
return buf
li = makeList()
for x in li:
print(x)
このコードを実行すると、以下のように表示されます。
"0"
"1"
"2"
"3"
…
"47"
"48"
"49"
"1"
"2"
"3"
…
"47"
"48"
"49"
• 1行に要素を5つ表示する
#code2.pyはリスト内の要素を上から順番に表示しますが、1行に1要素なので、要素が50個もあると、表示が縦に長すぎて見づらくなってしまいます。
そこで、1行に5つ表示することを考えます。
#code2.pyを改良して、1行に5つ表示するようにしたコードを、以下に示します。
[code3.py]
def makeList():
num = 0
buf = []
for i in range(50):
 buf.append('"' + str(num) + '"')
 num = num + 1
return buf
def dispListContents():
li = makeList()
buf = ''
c = 0
for x in li:
 c = c + 1
 buf = buf + x + ','
 if (c % 5) == 0:
buf = buf + '\n'
c = 0
print(buf)
dispListContents()
num = 0
buf = []
for i in range(50):
 buf.append('"' + str(num) + '"')
 num = num + 1
return buf
def dispListContents():
li = makeList()
buf = ''
c = 0
for x in li:
 c = c + 1
 buf = buf + x + ','
 if (c % 5) == 0:
buf = buf + '\n'
c = 0
print(buf)
dispListContents()
このコードを実行すると、以下のように表示されます。
縦方向の表示がスリムになったので、だいぶ見やすくなったのではないかと思います。
コード解説#code3.py は、0から49までの数値を文字列として格納するリストを作成し、そのリストの要素を1行に5つずつ表示するプログラムです。
makeList
関数はリストを生成し、dispListContents
関数はリストを5つの要素ごとに改行を挿入しながら表示します。
ad: