📚

PythonでのAtCoder出力メモ

2022/07/11に公開

いっぱい出力しないといけないとき用。よく忘れておくのでまとめておく。

複数の数値を空白区切りで1行に出力

リスト(numpy配列も可)の頭に*をつける

import numpy as np
a=np.arange(10)

print(*a)

出力

0 1 2 3 4 5 6 7 8 9

複数の数値を改行しながら1列に出力

print(*a,sep='\n')

出力

0
1
2
3
4
5
6
7
8
9

配列の中身が文字列の場合はjoinでも書ける。

print('\n'.join(a))

joinの場合配列の中身が数値だとエラー出る。文字列の場合はjoin使った方がわずかに速そう。10^{5}程度の出力で50ms前後の差に相当?これが原因でTLEになることはないと思う。

複数の数値を改行しながら複数列に出力

計算途中ででてきた2次元配列をそのまま括弧なしで出力できればいいのだが、どうもfor文使わずに書く方法は無さそう。

import numpy as np
b=np.arange(30).reshape(3,10)

for bb in b:
    print(*bb)

出力

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

Discussion