リスト、タプル、辞書はPythonで非常に頻繁に使用されるデータ構造です。それぞれに特徴があり、適切な場面で使い分けることが重要です。次のセクションでは、これらのデータ構造の基本と、その操作方法について詳しく説明します。
1.3.1 リスト
リストは、順序付きの可変長のコレクションです。リストの要素は、整数、浮動小数点数、文字列など、さまざまなデータ型を混在させることができます。また、リストの中にリストを含めることも可能です。
リストの作成:
例(リストの宣言):
fruits = ["apple", "banana", "cherry"]
リストの要素へのアクセス:
例(リストの要素取得):
print(fruits[0]) # "apple"
リストの操作:
追加: append()
例(要素の追加):
fruits.append("orange")
削除: remove()
例(要素の削除):
fruits.remove("banana")
要素の確認: in
例(要素の確認):
print("apple" in fruits) # True
1.3.2 タプル
タプルは、順序付きの不変のコレクションです。一度作成すると、タプルの要素を変更することはできません。タプルは、変更を許容しないデータを扱う際に便利です。
タプルの作成:
例(タプルの宣言):
colors = ("red", "green", "blue")
タプルの要素へのアクセス: 例(タプルの要素取得):
print(colors) # "green"
タプルの操作:
結合: +
例(タプルの結合):
new_colors = colors + ("yellow",)
1.3.3 辞書
辞書は、キーと値のペアを格納するコレクションです。キーは一意であり、値は変更可能です。辞書は、キーを使って効率的にデータにアクセスするために使用されます。
辞書の作成:
例(辞書の宣言):
person = {"name": "Alice", "age": 25, "city": "New York"}
辞書の要素へのアクセス:
例(辞書の要素取得):
print(person["name"]) # "Alice"
辞書の操作:
追加と更新:
例(要素の追加・更新):
person["email"] = "alice@example.com"
削除: del
例(要素の削除):
del person["age"]
キーの確認: in
例(キーの確認):
print("city" in person) # True
1.3.4 リストとタプルの違い
リストとタプルは似ていますが、いくつかの重要な違いがあります。
可変性:
リスト: 可変(要素の追加、削除、変更が可能)
タプル: 不変(要素の追加、削除、変更は不可)
用途:
・リスト: 頻繁に変更が必要なデータに適しています。
・タプル: 変更の必要がないデータ、またはキーとして使用するデータに適しています。
例(リストとタプルの違い):
# リストの例
fruits = ["apple", "banana", "cherry"]
fruits[0] = "orange" # 変更可能
# タプルの例
colors = ("red", "green", "blue")
# colors[0] = "yellow" # エラー: タプルは変更不可
1.3.5 リスト内包表記
リスト内包表記は、簡潔にリストを生成するための方法です。通常のforループを使ったリスト生成に比べて、コードがシンプルになります。
基本構文:
new_list = [expression for item in iterable]
例(リスト内包表記の使用):
squares = [x**2 for x in range(10)]
1.3.6 タプル内包表記
タプル内包表記は、タプルを生成するための構文です。リスト内包表記に似ていますが、結果はタプルになります。
基本構文:
new_tuple = tuple(expression for item in iterable)
例(タプル内包表記の使用):
quares_tuple = tuple(x**2 for x in range(10))
1.3.7 辞書内包表記
辞書内包表記は、辞書を生成するための簡潔な方法です。
基本構文:
new_dict = {key: value for item in iterable}
例(辞書内包表記の使用):
square_dict = {x: x**2 for x in range(10)}
1.3.8 データ型の選択基準
データ型を選択する際には、以下の点を考慮することが重要です。
データの変更の有無:
頻繁に変更するデータにはリストを使用。
変更しないデータにはタプルを使用。
データへのアクセス方法:
順序を重視する場合はリストまたはタプルを使用。
キーを使用して効率的にアクセスする場合は辞書を使用。
メモリ使用量:
大量のデータを扱う場合、タプルの方がリストよりもメモリ効率が良い。
1.3.9 例題: データ構造の選択
以下のシナリオで適切なデータ構造を選択してみましょう。
名前の一覧を管理する:
推奨データ型: リスト
理由: 頻繁に追加や削除が発生する可能性があるため。
例(リストの使用):
names = ["Alice", "Bob", "Charlie"] names.append("David")
RGBカラーのセットを管理する:
推奨データ型: タプル
理由: 色のセットは変更されないため、不変のタプルが適している。
例(タプルの使用):
rgb_colors = (255, 0, 0)
ユーザー情報をキーと値で管理する:
推奨データ型: 辞書
理由: ユーザー情報にアクセスする際、キーを使用して効率的にデータを取得できる。
例(辞書の使用):
user_info = {"name": "Alice", "age": 25, "email": "alice@example.com"}
1.3.10 次のステップ
このセクションでは、リスト、タプル、辞書などの基本的なデータ構造について学びました。次のステップとして、条件分岐を用いたデータの操作方法を学びます。詳細は「1.4 条件分岐」をご覧ください。
これで1.3のセクションが完了しました。次に進む場合は、以下のリンクから続きのセクションをご覧ください。