こんにちは。
本日はPythonメモです。
概要
本記事は、標準的なprint()と
pprintモジュールを使用したpprint()について記載記載します。
pprintについては以下参照です。
pprint --- データ出力の整然化 — Python 3.12.2 ドキュメント
printを使用してデータを出力
変数の出力
s = 'Hello World' print(s) n = 1000 print(n) l = [1, 2, 3, 4, 5] print(l) d = {'a': 'aaa', 'b': 'bbb'} print(d)
実行結果は以下です。
Hello World 1000 [1, 2, 3, 4, 5] 1 2 3 4 5 {'a': 'aaa', 'b': 'bbb'}
改行の設定
引数のendを指定することで改行の変更ができます。
デフォルトは\n
となっています。
print('Hello', end='') print('World') print('Hello', end='---') print('World')
実行結果は以下です。
HelloWorld Hello---World
区切り文字の設定
引数のsepを指定することで改行の変更ができます。
デフォルトは空白スペースとなっています。
print('Hello', 'World', sep='-->') print('Hello', 'World', sep='\n')
実行結果は以下です。
Hello-->World Hello World
リスト出力の場合、変数名に*
を付与すると
区切り文字が空白スペースになります。
l = [1, 2, 3, 4, 5] print(*l)
実行結果は以下です。
1 2 3 4 5
さらにsepを指定すると
同様に区切り文字を変更できます。
l = [1, 2, 3, 4, 5] print(*l, sep='--')
実行結果は以下です。
1--2--3--4--5
変数の埋め込む
format()メソッド
変数を設定する部分を{}
で記載します。
format()
の引数は、表示する対象の変数を指定します。
name = 'Bob' color = 'yellow' print('name={}, color={}'.format(name, color))
実行結果は以下です。
name=Bob, color=yellow
{}
にキーワードを指定することも可能です。
name = 'Bob' color = 'yellow' print('name={n}, color={c}'.format(c=color, n=name))
実行結果は以下です。
name=Bob, color=yellow
フォーマット文字列
文字列リテラルの前にf
を付与します。
{}
に直接変数を指定することができます。
name = 'Bob' color = 'yellow' print(f'name={name}, color={color}')
実行結果は以下です。
name=Bob, color=yellow
pprintを使用してデータを出力
pprintを使用する際は、pprintをインポートしてください。
pprintを使用すると、出力するデータを設定に応じて整形してくれます。
import pprint item = [{'a1': 'aa1', 'a2': 'aa2', 'a3': [100, 200]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [300, 400]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [500, 600]}] pprint.pprint(item)
実行結果は以下です。
[{'a1': 'aa1', 'a2': 'aa2', 'a3': [100, 200]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [300, 400]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [500, 600]}]
デフォルトがwidth=80
となっているので
要素が少ない場合や、短い場合は整形されません。
import pprint item = [{'a1': 'aa', 'a2': 'aa'}, {'b1': 'bb', 'b2': 'bb'}, {'c1': 'cc', 'c2': 'cc'}] pprint.pprint(item)
実行結果は以下です。
[{'a1': 'aa', 'a2': 'aa'}, {'b1': 'bb', 'b2': 'bb'}, {'c1': 'cc', 'c2': 'cc'}]
widthの設定を変更してみます。
import pprint item = [{'a1': 'aa1', 'a2': 'aa2', 'a3': [100, 200]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [300, 400]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [500, 600]}] pp = pprint.PrettyPrinter(width=30) pp.pprint(item)
実行結果は以下です。
[{'a1': 'aa1', 'a2': 'aa2', 'a3': [100, 200]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [300, 400]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [500, 600]}]
要素の深さをdepth
で変更できます。
デフォルトはdepth=None
です。
import pprint item = [{'a1': 'aa1', 'a2': 'aa2', 'a3': [100, 200]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [300, 400]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [500, 600]}] pp = pprint.PrettyPrinter(depth=2) pp.pprint(item)
実行結果は以下です。
[{'a1': 'aa1', 'a2': 'aa2', 'a3': [...]}, {'b1': 'bb1', 'b2': 'bb2', 'b3': [...]}, {'c1': 'cc1', 'c2': 'cc2', 'c3': [...]}]
以上です。