2-2. 複合データ構造(コレクション)の真価と操作

リスト(list): ミュータブル(変更可能)な配列

要素の追加・削除・並び替えが自由に行えるデータ構造です。

Python

numbers = [3, 1, 4, 1, 5]

# 操作
numbers.append(9)       # 末尾に追加 -> [3, 1, 4, 1, 5, 9]
numbers.remove(1)       # 最初の1を削除 -> [3, 4, 1, 5, 9]
popped = numbers.pop()  # 末尾を取り出して削除 -> 9

# ソート(インプレース変換)
numbers.sort()          # 昇順ソート -> [1, 3, 4, 5]

タプル(tuple): イミュータブル(変更不可)な配列

一度作成すると内容を変更できません。変更を防止したい安全なデータ群や、複数戻り値の保持に適しています。

Python

point = (10, 20)

# アンパック代入(展開)
x, y = point  # x=10, y=20 に一度でセットされる

辞書(dict): キー・バリュー操作

キー(Key)と値(Value)の組み合わせでデータを管理します。

Python

user = {"id": 1, "name": "Alice"}

# 安全な値の取得 (.get メソッド)
# 存在しないキーを指定してもエラーにならず、デフォルト値を返せる
email = user.get("email", "未登録")  # '未登録'

# 辞書の結合 (Python 3.9+)
extra_info = {"role": "Admin", "city": "Tokyo"}
user = user | extra_info

集合(set): 重複除去と集合演算

重複を許さず、順序を持たない要素の集まりです。

Python

set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}

print(set_a | set_b)  # 和集合: {1, 2, 3, 4, 5, 6}
print(set_a & set_b)  # 積集合: {3, 4}
print(set_a - set_b)  # 差集合: {1, 2}

内包表記(Comprehensions)の書き方と処理速度

リストや辞書をスマートかつ高速に作成できるPython特有の文法です。

Python

# 従来のforループ
squares_for = []
for i in range(10):
    if i % 2 == 0:
        squares_for.append(i ** 2)

# リスト内包表記(コードが簡潔で実行スピードも速い)
squares_comp = [i ** 2 for i in range(10) if i % 2 == 0]

# 辞書内包表記
square_dict = {i: i ** 2 for i in range(5)}

# ジェネレータ式(メモリ効率が抜群)
square_gen = (i ** 2 for i in range(1000000))

コメント

タイトルとURLをコピーしました