伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•リスト •Python



公開日:

Pythonでリストの要素を1行に5つ表示してみる


img_1

Pythonでリスト内の要素を1行に5つ表示することを考えます。


range() を使ったループについて復習します。以下のコードは、for i in range(50): という記述によって、処理を50回ループするコードです。

[code1.py]
def test():
    num = 0
    for i in range(50):
        print(i)

test()

このコードを実行すると、以下のように表示されます。

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

このコードを実行すると、以下のように表示されます。

"0"
"1"
"2"
"3"

"47"
"48"
"49"

#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()

このコードを実行すると、以下のように表示されます。

image 1

[ 画像1. 実行結果 ]

 

縦方向の表示がスリムになったので、だいぶ見やすくなったのではないかと思います。

コード解説
#code3.py は、0から49までの数値を文字列として格納するリストを作成し、そのリストの要素を1行に5つずつ表示するプログラムです。makeList 関数はリストを生成し、dispListContents 関数はリストを5つの要素ごとに改行を挿入しながら表示します。