paizaのスキルチェックでコードを書いていると、
途中結果を確認をしたいと感じることが多くあります。
その際に長い2次元配列などは横に長く表示されてしまい、見づらいことがあります。
今回はそれを簡単に見やすくする方法について説明します。
まずは何の工夫もなく、長い list をそのまま出力するコードです。
test_list = [["11111111", "22222222", "33333333"], ["aaaaaaaa", "bbbbbbbb", "cccccccc"], ["one", "two", "three"]]
print(test_list)
実行結果はこちら
[['11111111', '22222222', '33333333'], ['aaaaaaaa', 'bbbbbbbb', 'cccccccc'], ['one', 'two', 'three']]
結果は見づらいです。
続いて、for
文を使って結果を見やすく表示するコードです。
test_list = [["11111111", "22222222", "33333333"], ["aaaaaaaa", "bbbbbbbb", "cccccccc"], ["one", "two", "three"]]
for i in range(len(test_list)):
print(test_list[i])
実行結果はこちら
['11111111', '22222222', '33333333']
['aaaaaaaa', 'bbbbbbbb', 'cccccccc']
['one', 'two', 'three']
二次元配列が1行ずつ表示され、見やすくなったと思います。
ただし「毎回for
文を書いたりせずに簡単に見やすく表示したい」と、私は感じていました。
そんな時に便利な機能が用意されていることを知りました。
便利な機能とは、pprint
モジュールを使う方法です。
以下のコードで説明します。
# pprint モジュールを import
import pprint
test_list = [["11111111", "22222222", "33333333"], ["aaaaaaaa", "bbbbbbbb", "cccccccc"], ["one", "two", "three"]]
# pprint.pprint()で出力
pprint.pprint(test_list)
実行結果はこちら
[['11111111', '22222222', '33333333'],
['aaaaaaaa', 'bbbbbbbb', 'cccccccc'],
['one', 'two', 'three']]
先ほどのfor
文を使った場合と同様に、
二次元配列が1行ずつ表示され、見やすくなったと思います。
これが通常のprint
文を使うのとほぼ変わらずに実現できるので是非ご活用ください。
配列の横幅が短い場合は、改行が想定通りにならないこともあります。
その際には「width」で幅を指定することで、出力幅を変更することができます。(デフォルトは80)
pprint.pprint(【出力対象】, width=【width指定】)