【Python入門】4章のまとめ

 4章では、Pythonのデータ構造であるリスト、タプル、集合、辞書について、その基本操作から便利な機能まで幅広く解説してきました。各データ構造は用途や特性が異なり、目的に応じた使い分けが求められます。ここでは、4章で学んだ内容を大まかに振り返り、それぞれの操作方法や注意点、実践的な利用例を整理してまとめます。以下の各項目ごとに、主要なポイントと例を表やコードとともに説明していきます。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.リストとその操作

1.1. リストの使い方と基本操作

  • リストは角括弧 [] を使って作成し、順序付けられた要素を保持します。
  • リストはミュータブルであり、要素の追加、削除、変更が可能です。

例:

# リストの作成例
fruits = ['apple', 'banana', 'cherry', 'orange']
print(fruits)  # 出力例: ['apple', 'banana', 'cherry', 'orange']

1.2. インデックスとスライス、代入の注意点

  • リストは0始まりのインデックスでアクセスし、スライス構文 リスト[開始:終了] によって部分リストを取り出します。
  • 代入時は、範囲外のインデックスに注意が必要です。

例:

# インデックスとスライスの例
print(fruits[1])        # 'banana'
print(fruits[1:3])      # ['banana', 'cherry']

1.3. リスト要素の追加、削除、文字列との変換など

  • appendextend で要素を追加し、delpop で削除できます。
  • join メソッドや list 関数を使って、リストと文字列の相互変換が可能です。
  • また、sort メソッドや sorted 関数を使って並べ替え、min 関数と max 関数で最小値・最大値を取得できます。

表:リストの基本操作

操作コード例説明
追加fruits.append('kiwi')リスト末尾に要素を追加
削除del fruits[2]インデックス2の要素を削除
文字列への変換'/'.join(fruits)要素を'/'で連結して文字列に変換
並べ替えfruits.sort()リスト内の要素を昇順に並べ替え

2.タプルの基本操作とその応用

2.1. タプルとは

  • タプルは丸括弧 () で作成するイミュータブルなシーケンス型です。
  • 要素の変更ができないため、定数データや安全性が求められる場面で使用されます。

例:

# タプルの作成例
dimensions = (1920, 1080)
print(dimensions)  # 出力例: (1920, 1080)

2.2. タプルのインデックス、スライス、パッキング・アンパッキング

  • タプルはリストと同様にインデックスとスライスでアクセスできます。
  • 複数の値をまとめたり展開したりするパッキングとアンパッキングが可能です。

例:

# アンパッキングの例
point = (10, 20, 30)
x, y, z = point
print("x:", x, "y:", y, "z:", z)

2.3. その他の便利なタプル操作と階層的なデータ構造

 タプルは集合や辞書のキーとして利用でき、階層的なデータ構造(例えば、商品の詳細情報をタプルにまとめ、リストに格納する)にも適しています。

3.集合とハッシュ法の利用

3.1. 集合の作成と基本操作

  • 集合は波括弧 {} を用いて作成し、重複を排除した要素を保持します。
  • in および not in 演算子で、要素の存在確認が高速に行えます。

例:

# 集合の作成例
colors = {'red', 'green', 'blue', 'yellow'}
print(colors)  # 出力例: {'red', 'green', 'blue', 'yellow'}

3.2. 集合への追加・削除と特有の演算

  • add メソッドや累算代入文 |= を用いて要素を追加し、removediscardpopclear で削除できます。
  • 和集合、積集合、差集合、対称差など、集合固有の演算が利用できます。

表:集合の基本演算

演算子結果例
和集合`colors1colors2`
積集合colors1 & colors2両集合に共通する要素
差集合colors1 - colors2一方の集合からもう一方の要素を除外
対称差colors1 ^ colors2どちらか一方にのみ存在する要素

3.3. ハッシュ法の仕組みとハッシュの計算

  • 集合や辞書は、ハッシュ関数を使って要素のハッシュ値を計算し、ハッシュテーブル内に格納します。
  • hash() 関数により、文字列やタプルなどのハッシュ値が計算できる値に対して、整数値が返されます。

例:

print("hash('green') =", hash('green'))

4.辞書の操作とその便利な機能

4.1. 辞書の作成とキーと値の管理

  • 辞書は波括弧 {} を使い、「キー: 値」のペアを格納します。
  • キーはハッシュ可能なイミュータブルな型でなければなりません。

例:

# 辞書の作成例:国コードをキー、国名を値とする
countries = {'us': 'United States', 'jp': 'Japan', 'de': 'Germany'}
print(countries)

4.2. 辞書に格納した値の取得

  • 角括弧 []get メソッドを使って、キーに対応する値を取得します。
  • 存在しないキーを参照する場合、get メソッドを使えば例外を避けられます。

例:

print("キー 'jp' の値:", countries['jp'])
print("キー 'fr' の値:", countries.get('fr', 'France'))

4.3. 辞書に対する要素の追加と削除

  • 辞書に新たな要素を追加するには、辞書[キー] = 値 の形式で行い、同じキーが存在する場合は値が上書きされます。
  • del 文や pop メソッド、clear メソッドで要素の削除が可能です。

例:

# 要素の追加と更新
countries['it'] = 'Italy'
countries['de'] = 'Deutschland'
print("更新後の辞書:", countries)

# 要素の削除
del countries['jp']
print("削除後の辞書:", countries)

表:辞書の便利な操作

操作内容コード例説明
要素数の確認len(countries)辞書に含まれるキーと値のペアの個数を返す
キーの存在確認'us' in countriesキーが辞書に含まれているかどうかを判定
値の取得(角括弧)countries['de']指定したキーに対応する値を返す
値の取得(getメソッド)countries.get('fr', 'France')存在しない場合、デフォルト値を返す
要素の追加・更新countries['it'] = 'Italy'キーが存在しなければ追加、存在すれば上書き
要素の削除(del文)del countries['jp']指定したキーの要素を削除(存在しないと KeyError が発生)
要素の削除(popメソッド)countries.pop('de', 'Default')指定したキーの要素を削除し、その値を返す(デフォルト値指定可能)

まとめ

 4章では、リスト、タプル、集合、辞書といった主要なデータ構造の基本操作と、各構造に対する便利な操作について詳しく学びました。

  • リストとタプルは、インデックス・スライス操作や変換、並べ替え、最小・最大値の取得など、シーケンスとしての操作が中心でした。
  • 集合は、ハッシュ法を利用した高速な要素の追加・削除、集合特有の演算、要素数の取得など、集合論に基づく操作が可能です。
  • 辞書は、キーと値の組を管理し、キーを使った高速な検索、要素の追加・更新・削除、さらに便利なビュー操作などが提供され、実世界の辞書のような使い勝手を実現しています。

 これらの操作を統合的に理解することで、Pythonにおけるデータ管理の柔軟性と効率性を大いに高め、実践的なプログラミングに役立てることができるでしょう。