第4章 データ構造
Pythonでは、リスト・タプル・辞書・集合などのデータ構造が用意されており、それぞれ異なる特性を持つ。用途に応じたデータ構造を選択することで、効率的なプログラムが実現できる。
1. リスト(list)
リストは順序を持ち、要素を変更できる(ミュータブル)。
numbers = [1, 2, 3, 4, 5]
print(numbers[0]) # 1(インデックスアクセス)
numbers.append(6) # 要素の追加
numbers.insert(2, 99) # インデックス2に99を挿入
numbers.remove(3) # 値3を削除
print(numbers) # [1, 2, 99, 4, 5, 6]
2. タプル(tuple)
タプルはリストと似ているが、要素を変更できない(イミュータブル)。
coordinates = (10, 20)
print(coordinates[0]) # 10(インデックスアクセス)
# coordinates[0] = 5 # エラー(変更不可)
変更が不要なデータの格納に適している。
3. 辞書(dict)
辞書はキーと値のペアでデータを管理する。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person["name"]) # Alice(キーでアクセス)
person["age"] = 26 # 値の更新
person["job"] = "Engineer" # 新規キー追加
del person["city"] # キーの削除
print(person) # {'name': 'Alice', 'age': 26, 'job': 'Engineer'}
4. 集合(set)
集合は重複を許さないデータ構造で、順序を持たない。
fruits = {"apple", "banana", "cherry"}
fruits.add("orange") # 要素追加
fruits.remove("banana") # 要素削除
print(fruits) # {'apple', 'cherry', 'orange'}
重複を自動的に排除するため、一意な要素のリストが必要な場合に便利。
5. リスト内包表記
リストを簡潔に生成する方法。
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
条件付きリストも作成可能。
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
6. 辞書内包表記
辞書を簡潔に作成する方法。
squares_dict = {x: x**2 for x in range(5)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

コメント