データ構造をループでさばく

Basic python

データ構造をループでさばく

リストや辞書を for 文で効率的に処理する方法を整理します。

リストをループする #

tasks = ["メール確認", "分析実行", "レポート提出"]
for task in tasks:
    print(f"次の仕事: {task}")

enumerate #

for index, task in enumerate(tasks, start=1):
    print(index, task)

辞書をループする #

stock = {"AAPL": 10, "MSFT": 5, "GOOG": 2}
for symbol, qty in stock.items():
    print(f"{symbol}: {qty}")

items() を使うとキーと値を同時に取り出せます。keys(), values() と併用してみましょう。

ネストしたデータを処理する #

users = [
    {"name": "Alice", "scores": [80, 90, 88]},
    {"name": "Bob", "scores": [70, 65, 72]}
]

for user in users:
    avg = sum(user["scores"]) / len(user["scores"])
    print(f"{user['name']} さんの平均: {avg:.1f}")

リスト内包表記 + 条件 #

numbers = [1, 2, 3, 4, 5, 6]
even_squares = [n * n for n in numbers if n % 2 == 0]

試してみよう #

  1. 住所録(辞書のリスト)を用意し、for 文で「都道府県ごとに人数を数える」処理を書いてください。
  2. 商品カテゴリと商品名の2重リストを for 文で回し、「カテゴリ: 商品」形式で表示するスクリプトを作成してください。
  3. リスト内包表記を使って、1~100 のうち 3 の倍数のみを 3 倍して並べたリストを生成しましょう。