なんだかGoodVibes

日々の勉強メモです。

【Python】printとpprint

こんにちは。
本日は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': [...]}]



以上です。