コンテナ
Python3でコンテナ型を利用する利点は以下の通りとなる。 コンテナ型は、データを効率的に管理し操作するための仕組みとなる。
データをリスト、タプル、セット、辞書といったさまざまな形で格納することができ、これにより複数の値を一つの変数にまとめることが可能になります。
たとえば、学生の名前を管理する場合、リスト型を利用することで個別の変数を用意する必要がなく、データの一元管理が行えます。 また、コンテナ型はコードの可読性の向上に役立ちます。
例えば、リストを用いることで、ループを使ってすべての要素に対して一括操作を行うことが可能です。
これにより、冗長なコードを避けることができる。辞書型を使えば、キーと値をペアにしてデータを保存でき、データの検索や追加、削除が効率的に行えます。
それぞれのコンテナ型には特性があり、用途に応じて適切な選択が可能です。リストは順序を保持し、データの追加や変更ができます。
一方、タプルはデータを変更できないため、安全に管理したいデータに適しています。セットは重複を排除し、ユニークな値だけを保持するために利用できます。
さらに、コンテナ型はその特性を活かして、データの検索や操作を効率化できます。辞書型やセット型はハッシュテーブルを使用しているため、大量のデータを扱う場合でも高速に検索が
可能になります。
Pythonのコンテナ型を適切に活用することで、複雑なデータを簡潔に整理できるだけでなく、プログラムの実行効率を高めることができます。
これにより、可読性の高い、メンテナンスしやすいコードを書くことが可能になる。
- リスト
- ディクショナリ
- タプル
- セット
1. リスト(List)
特徴: 順序付き(データの順番が保たれる)、変更可能(ミュータブル)、重複要素を許可。
構文: [値1, 値2, 値3] 用途: 順序を持つ複数のデータを扱う場合に便利です。
値の取り出し方
上記コードのポイント
リストの作成: 名前、年齢、身長、職業、趣味のリストを格納するリストを作成。
要素の取得: インデックスを使ってリスト内の特定の要素を取得。
要素の変更: リストはミュータブル(変更可能)なので、特定の要素を更新可能。
要素の追加と削除: appendで新しい要素を追加し、removeで特定の要素を削除。
ネストされたリストの操作: リスト内の趣味リストを取り出し、特定の趣味を取得。
ループ処理: リストのすべての要素をループで表示。
長さの取得: len関数でリストの要素数を確認。
リストのソートと逆順: sortとreverseを使ってリストを並べ替え。
2. ディクショナリ(Dictionary)
特徴: キーと値のペアを管理、順序付き(Python3.7以降)、変更可能(ミュータブル)、キーは一意(重複不可)。
構文: {キー1: 値1, キー2: 値2} 用途: データをキーと値で関連付けて管理したい場合に利用されます。
値の取り出し方
上記コードのポイント
キーを指定した取得: 最もシンプルな方法で直接キーを指定して値を取り出します。
getメソッド: キーが存在しない場合でも、エラーを出さずデフォルト値を返す安全な方法です。
ループ処理: items()メソッドで全てのキーと値を順に取得します。
辞書内のリスト: 辞書に含まれているリストをループで操作し、個別の値を取り出します。 ネ
ストされた辞書: 複雑なデータ構造から特定の値を取得する例を示します。
3. タプル(Tuple)
特徴: 順序付き(データの順番が保たれる)、変更不可(イミュータブル)、重複要素を許可。
構文: (値1, 値2, 値3) 用途: 値を安全に管理し、不変であることを保証したい場合に適しています)。
値の取り出し方
上記コードのポイント
タプルの作成: 田中一郎の情報をタプルで作成。名前、年齢、身長、職業、趣味を格納しています。
要素の取得: インデックスを使って要素を直接取得します。
データのアンパック: タプルのデータを変数に分解して、それぞれ利用します。
ネストされたタプルの操作: 趣味のリスト(タプル)にアクセスし、その中の要素を取得します。
タプルの長さ: len関数でタプルの要素数を確認します。
ループ処理: タプルの全要素をループで出力します。
不変性の確認: タプルは変更できないため、誤ってデータを変更しようとするとエラーが発生します。
4. セット(Set)
特徴: 順序なし(順番は保証されない)、ユニークな要素のみ(重複不可)、変更可能(ミュータブル)。
構文: {値1, 値2, 値3} 用途: データの集合を扱い、重複する要素を排除したい場合に便利です。
値の取り出し方
上記コードのポイント
セットの作成: 趣味をセットで管理。重複した要素(「読書」)は自動的に排除されます。
要素の追加: addメソッドを使って新しい趣味をセットに追加。
要素の削除: discardメソッドで特定の要素を削除します(削除対象が存在しなくてもエラーは発生しません)。
値の存在確認: inキーワードを使って、特定の値がセット内に存在するかを確認。
ループ処理: forループでセット内のすべての要素を取り出して表示。
集合演算: intersectionメソッドを使って、他のセットとの共通の要素を取り出す。
要素数の取得: len関数でセット内の要素数を取得。
セットは、順序に依存せず、重複を排除する特性を持つため、趣味の管理や集合演算の操作に非常に便利です。
5.まとめるとこんな感じ
だんだんプログラムらしくなってきました。理解はまだ大丈夫だと思いますが、変数、コンテナは基本中の基本なので、しっかり理解しておいて下さい。ここが理解出来ないなら再度理解に
後戻りしても良いと思います。
リストとタプルの違いは前述しましたが、使いどころとして以下となります。
- リストは書き換える可能性のある複数のデータを扱う時に利用する。
- タプルは書き換える可能性のない複数のデータを扱う時に利用する。