Python の組み込みデータ構造
リストは変更可能(ミュータブル)なので、要素を自由に追加・削除・変更できます:
# リストの作成
shopping_list = ["牛乳", "パン", "卵"]
# .append() - 末尾に要素を追加
shopping_list.append("バター")
print(f"追加後: {shopping_list}")
# .insert() - 指定位置に要素を挿入(既存要素は右にシフト)
shopping_list.insert(1, "チーズ") # インデックス1番目に挿入
print(f"挿入後: {shopping_list}")
# .remove() - 値で要素を削除(最初に見つかったもの)
shopping_list.remove("パン")
print(f"削除後: {shopping_list}")
# インデックスによるアクセス
print(f"最初の項目: {shopping_list[0]}") # インデックス0は最初
print(f"最後の項目: {shopping_list[-1]}") # -1は最後から1番目重要: Pythonのインデックスは0から始まります!
スライシングはリストの部分を取得する強力な機能です。構文: [開始:終了:ステップ]
# スライシングの例
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(f"全体: {numbers}")
print(f"最初の3つ: {numbers[:3]}") # 開始を省略=0から、終了=3(含まない)
print(f"最後の3つ: {numbers[-3:]}") # 開始=-3(後ろから3番目)、終了省略=最後まで
print(f"中間部分: {numbers[3:7]}") # インデックス3から6まで(7は含まない)
print(f"偶数インデックス: {numbers[::2]}") # ステップ2で要素を飛ばし取得
print(f"逆順: {numbers[::-1]}") # ステップ-1で逆順取得覚え方: - [:n] → 最初からn個 - [n:] → n番目から最後まで - [::2] → 1つおきに取得 - [::-1] → 逆順
# 辞書の操作
student_grades = {"数学": 85, "英語": 92, "理科": 78}
# 新しいキーと値の追加
student_grades["社会"] = 88
print(f"科目追加後: {student_grades}")
# 値の更新
student_grades["数学"] = 90
print(f"更新後: {student_grades}")
# キーの確認
print(f"英語の成績はある? {'英語' in student_grades}")
print(f"音楽の成績はある? {'音楽' in student_grades}")
# すべてのキーと値
print(f"科目: {list(student_grades.keys())}")
print(f"成績: {list(student_grades.values())}")# タプルの作成
coordinates = (10, 20)
rgb_color = (255, 128, 0)
person_info = ("山田花子", 25, "デザイナー")
print(f"座標: {coordinates}")
print(f"RGB色: {rgb_color}")
print(f"人物情報: {person_info}")
# タプルのアンパック
x, y = coordinates
name, age, job = person_info
print(f"X座標: {x}, Y座標: {y}")
print(f"名前: {name}, 年齢: {age}, 職業: {job}")# 学生の成績管理システム
students = [
{"名前": "田中太郎", "成績": [85, 92, 78, 88]},
{"名前": "佐藤花子", "成績": [90, 87, 95, 92]},
{"名前": "鈴木一郎", "成績": [75, 82, 79, 85]}
]
# 各学生の平均点を計算
for student in students:
name = student["名前"]
grades = student["成績"]
average = sum(grades) / len(grades)
print(f"{name}の平均点: {average:.1f}")# 在庫管理
inventory = {
"りんご": {"数量": 50, "価格": 120},
"バナナ": {"数量": 30, "価格": 80},
"オレンジ": {"数量": 25, "価格": 100}
}
# 在庫状況の表示
print("=== 在庫状況 ===")
for item, details in inventory.items():
quantity = details["数量"]
price = details["価格"]
total_value = quantity * price
print(f"{item}: {quantity}個, 単価{price}円, 総額{total_value}円")
# 合計在庫価値
total_inventory_value = sum(
details["数量"] * details["価格"]
for details in inventory.values()
)
print(f"\n総在庫価値: {total_inventory_value}円")以下の機能を実装してください:
# 買い物リストの作成と管理
shopping_list = []
# TODO: 以下の機能を実装
# 1. アイテムの追加
# 2. アイテムの削除
# 3. リストの表示
# 4. アイテム数の確認
# ヒント: append(), remove(), len() を使用期待される出力例:
買い物リスト: ['牛乳', 'パン', '卵', 'バター']
アイテム数: 4
学生の成績を管理する辞書を作成し、平均点を計算してください:
文字列内の各文字の出現回数をカウントしてください:
今日学んだデータ型:
基本型: - 数値(int, float) - 文字列(str) - ブール(bool) - None
コレクション: - リスト(list)- 変更可能 - タプル(tuple)- 変更不可
高度な型: - 辞書(dict)- キー・値ペア - セット(set)- 重複なし
重要な操作: - インデックス・スライシング - メソッドの使用 - ループでの処理
次回のセッションでは: - 制御フロー - 条件分岐(if, elif, else) - ループ(for, while) - 制御文(break, continue)
今日の復習として: 1. 異なるデータ型で練習問題を再実行 2. 新しいリストメソッドを試す 3. より複雑な辞書構造を作成 4. セット演算を実験する
質問がありましたら、いつでもお気軽にどうぞ!
次回もお楽しみに! 🐍📊
Python チュートリアル