Python プログラミングのレベルアップ:pprint モジュールでデータ構造を操る
以下の例では、pprint
モジュールを使用してリスト、辞書、およびタプルを整形する方法を示します。
import pprint
# リスト
data_list = [
["Alice", 30, "Software Engineer"],
["Bob", 25, "Data Scientist"],
["Charlie", 22, "Web Developer"],
]
# 辞書
data_dict = {
"name": "John Doe",
"age": 34,
"occupation": "Machine Learning Engineer",
"skills": ["Python", "R", "C++"],
}
# タプル
data_tuple = ("Python", "Java", "C++", "JavaScript")
# リストの整形
pprint.pprint(data_list)
# 辞書の整形
pprint.pprint(data_dict)
# タプルの整形
pprint.pprint(data_tuple)
このコードを実行すると、以下の出力が得られます。
[['Alice', 30, 'Software Engineer'],
['Bob', 25, 'Data Scientist'],
['Charlie', 22, 'Web Developer']]
{'name': 'John Doe',
'age': 34,
'occupation': 'Machine Learning Engineer',
'skills': ['Python', 'R', 'C++']}
('Python', 'Java', 'C++', 'JavaScript')
import pprint
# リストの整形(深さ2、インデント4文字、幅80文字)
data_list = [
["Alice", 30, "Software Engineer"],
["Bob", 25, "Data Scientist"],
["Charlie", 22, "Web Developer"],
]
pprint.pprint(data_list, depth=2, indent=4, width=80)
# 辞書の整形(キーをソート、インデント2文字)
data_dict = {
"name": "John Doe",
"age": 34,
"occupation": "Machine Learning Engineer",
"skills": ["Python", "R", "C++"],
}
pprint.pprint(data_dict, sort_dicts=True, indent=2)
# タプルの整形(各要素をカンマで区切る)
data_tuple = ("Python", "Java", "C++", "JavaScript")
pprint.pprint(data_tuple, width=30, separator=", ")
[['Alice', 30, 'Software Engineer'],
['Bob', 25, 'Data Scientist'],
['Charlie', 22, 'Web Developer']]
{'age': 34,
'name': 'John Doe',
'occupation': 'Machine Learning Engineer',
'skills': ['C++', 'Python', 'R']}
('Python, Java, C++, JavaScript')
上記のように、pprint
モジュールは、データ構造の表示を詳細に制御することができます。可読性と理解しやすさを向上させるために、これらのオプションを活用してください。
文字列フォーマット
シンプルなデータ構造の場合は、文字列フォーマットを使用して整形することができます。
data = [1, 2, 3, 4, 5]
print(f"リスト: {data}")
data_dict = {"name": "Alice", "age": 30, "occupation": "Software Engineer"}
print(f"辞書: {data_dict}")
このコードは、以下の出力を生成します。
リスト: [1, 2, 3, 4, 5]
辞書: {'name': 'Alice', 'age': 30, 'occupation': 'Software Engineer'}
json モジュール
JSON形式でデータを保存または表示する必要がある場合は、json
モジュールを使用することができます。
import json
data = [1, 2, 3, 4, 5]
json_data = json.dumps(data)
print(f"JSON: {json_data}")
data_dict = {"name": "Alice", "age": 30, "occupation": "Software Engineer"}
json_data = json.dumps(data_dict, indent=4)
print(f"JSON (インデント付き): {json_data}")
JSON: [1, 2, 3, 4, 5]
JSON (インデント付き): {
"name": "Alice",
"age": 30,
"occupation": "Software Engineer"
}
サードパーティライブラリ
カスタム関数
独自の要件に合わせて、データを整形するためのカスタム関数を作成することもできます。これは、複雑なデータ構造や特定の表示形式が必要な場合に役立ちます。
pprint
モジュールは汎用性の高いツールですが、状況によっては上記のような代替方法の方が適切な場合があります。最適な方法は、データの構造、必要な書式設定レベル、および個人的な好みによって異なります。