スズメの本棚

自分の知識の定着のために本や実装したことをまとめていきます.

pythonでリストの要素をスペース区切りで出力をしたい時(メモ)

初めに

競技プログラミングに参加していると答えの入っているリストをスペースで区切って出力しろというような問題に当たることが多いと思います.
これまで私は" ".join(リスト)をよく使っていたのですが,より簡単な方法を見つけたので自身のメモ程度に載せておきたいと思います.
また,それ以外の方法もついでに載せておきます.

  • 入力:n個の数字が入っているリスト
    例:[1,2,…,n]
  • 出力例:n個の数字のそれぞれの間にスペースが入っている形の出力
    例:1 2 3 4 … n

では,早速紹介していきたいと思います.

一番簡単な方法

リストに "*" を使ってアンパックし,それを出力するだけのもの.
入力:

x = [1,2,3,4,5]
print(*x)

出力:

1 2 3 4 5

知っていれば一発で出力できるのでめっちゃ便利じゃないでしょうか?

汎用性が高い方法

" ".join(リスト)を使って,リストの中身をスペース区切りで出力する方法.スペース区切り以外にも",".join(リスト)とすることでカンマ区切りで出力することができたり汎用性が上記のものよりは高い.
入力:

x = [1,2,3,4,5]
x = [str(i) for i in x]
print(" ".join(x))

出力:

1 2 3 4 5

直感的にわかりやすい方法

pythonのprint()はその出力の完了時に改行(\n)が入力されています.その部分をスペース(" ")に変えてあげることでスペース区切りの出力をすることができます.
入力:

x = [1,2,3,4,5]
for i in x:
    print(i, end=" ")

出力:

1 2 3 4 5

おまけ

リストの要素の数がすくなければこれでもいいとは思います.ただ今回紹介したものの方が簡単だと思うので一応できるということを示しておく程度に・・・
入力:

print(x[0],x[1],x[2],x[3],x[4])

出力:

1 2 3 4 5

最後に

今回はアスタリスク()でリストがアンパックできるということを知ったので紹介してみました.リストの頭にをつけるだけなので出力したい形がスペース区切りの時は使ってみてください.基本的には" ".join()が使いやすくておすすめです.
これ以外にも入出力の方法はあると思うので,また簡単な方法が見つかり次第追加したいと思います.