はじめに
ここでは、Pythonで扱うデータの型を紹介します。データの型は、プログラムの中で値をどのように扱うかを定義するとともに、データの型特有の操作を行うことができます。
では、まずは基本的なデータの型について紹介します。
基本的なデータの型
Pythonの基本的なデータの型は、次のものがあります。
- 文字列型
- 数値型(整数、浮動小数点数、虚数、論理値)
これらについては、すでに「いまさら始めるPython3(2)-文字列の扱い」と「いまさら始めるPython3(3)-数値と演算子の扱い」で説明していますので、ここでは割愛します。
コレクションのデータの型
コレクションとは、複数のデータをひとまとめにして扱うものです。Pythonでは、リスト(list)、タプル(tuple)、辞書(dict)、集合(set)という4つのデータの型があります。以下に、それぞれについての特徴を説明します。
リスト(list)
リストは、複数の基本的なデータの型の値を複数個まとめて管理するデータの型です。リストには、定義した順番で値が管理されます。このような順序管理を行っている型を「シーケンス型」と呼びます。例えば、文字列もシーケンス型のデータの型です。
リストを定義するためには、「[」「]」でくくり、値をカンマ「,」で区切って順番に羅列します。例えば、次のようにリストを定義します。
リストでは、次のような操作を行うことができます。
値の追加
リストの最後に新たな値を追加する場合は、append(値)を使用します。また、リストの特定の位置に値を追加する場合は、insert(場所,値)を使用します。
最後に値を追加(append)
途中に値を挿入(insert)
さらに、複数の値を挿入したり、リストに別のリストを連結することもできます。
途中に複数の値を挿入(スライス)
リストにコロン「:」を指定すと、その位置に複数の値を追加することができます。
なお、スライスそのものは、シーケンス型のデータについて部分的にアクセスする構文で、「開始位置:終了位置:スライスの増分」のように定義します。上記は、リストの特定部分にアクセスして値を挿入するため、開始位置に挿入位置を指定し、終了位置を0にすることで挿入する値の数分の挿入ができるわけです。
リストの連結
リストに新たに複数の値のリストを追加する場合は、リストの連携を行うextend(リスト)を使用します。
また、リストの結合結果を新たなリストにする場合、「+」でリストの連結を行うことができます。
タプル(tuple)
タプルは、リストと同様に複数のデータの型の値を複数個まとめて管理するデータの型です。タプルを定義するためには、「(」「)」でくくり、値をカンマ「,」で区切って順番に羅列します。タプルも、シーケンス型のため、定義した順番で値が管理されます。
タプルは、リストとほぼ同様ですが、タプルは一度作ったオブジェクトは、二度と変更できないという違いがあります。つまり、値を追加したり挿入したりすることができません。このような一度作ったら二度と値を変更できないものを「イミュータブル(immutable)」と言い、反対に値を変更できるもの「ミュータブル(mutable)」と言います。もし、値を変更しようとすると以下のようにエラーとなります。
なお、タプルは、値が1つの時も、カンマ「,」を最後につける必要があります。また、「(」「)」を省略することもできます。
辞書(dict)
辞書も、リストやタプルと同様に複数のデータの型の値を複数個まとめて管理するデータの型ですが、リストやタプルと違って、順序は管理しません。代わりにキー(key)と対応する値(value)の組み合わせで値を管理します。辞書を定義するためには、「{」「}」でくくり、キーと値を「キー:値」のようにコロン(:)を使って表現し、これらをカンマ「,」で区切って羅列します。例えば、以下のように定義します。
値の参照
辞書の値を取得する場合は、キーを指定して値を取得します。辞書にないキーを指定するとKeyErrorが発生します。
要素の追加と値の更新
辞書に新たな要素を追加する場合は、すでにあるキーを指定して値を設定します。すでにあるキーの値を更新する場合は、すでにあるキーを指定して値を設定します。(辞書に指定したキーが無い場合は追加され、有る場合は値が更新されます)
要素の削除
辞書にある要素を削除する場合は、del文を使います。また、要素の値を取得して削除する場合はpopメソッドを使います。
辞書の操作の詳細は、以下のURLにありますので、必要に応じて参照してください。
Python3 ドキュメント マッピング型(dict)
集合(set)
集合は、リストと同様に複数のデータをまとめたものですが、以下の点がリストと異なります。
・要素に順番が無い
・重複した要素(値)が無い
例えば、リストから集合を作る場合、
のように、重複した要素(値)は取り除かれます。
集合(set)の基本操作
setは、以下のような操作が行えます。
要素数の取得:len(set)
要素の追加:add(要素)
集合から要素を削除:discard(要素),remove(要素),pop(),clear()
setは、集合なので、各種の集合演算が可能です。集合演算とは、集合同士の和・積・差・対称差があります。
それぞれの演算は、以下のように集合演算が行えます。また、部分集合かどうかの判定もできます。
今回のデータ型についての記事はここまでです。
上記の紹介はあくまで概要ですので、Pythonのデータ型についての詳細は、公式ドキュメントを参照してください。
Python公式ドキュメント:https://docs.python.jp/3/library/stdtypes.html#