Pythonのデータ型まとめ

この記事では、Pythonで扱う基本的なデータ型についてまとめてみたいと思います。
Python3系のインタラクティブシェルで各データ型の扱いについて確認していきます。

 

 

文字列型 (str型)

データを文字列として扱うデータ型は「文字列型 (str型)」と呼ばれます。

データを シングルクォーテーション または ダブルクォーテーション で囲む
ことによりコンピュータに文字列型として扱うように伝えることができます。

例として、text という変数に abcde という文字列型のデータを代入する際は
下記のように文字列とするデータをクォーテーションで囲む必要があります。


データ型を確認するには type関数 を使用します。実際にtext変数のデータ型を
確認してみると、下記の通りちゃんと文字列型となっていることが分かります。



ためしにクォーテーションを付けずに変数 text にデータ abcde を代入してみると…


データが not defined (定義されていない) というエラーが出力されてしまいました。
コンピュータには厳密にそのデータが何であるかを伝えないといけないんですね。

 

整数型 (int型)

データを整数列として扱うデータ型は「整数型 (int型)」と呼ばれます。

プログラムに数字をそのまま書いただけのものは整数として認識されます。
ためしに、number という変数に 12345 というデータを代入してみたいと思います。


先程と同様に type関数 を使用してデータ型を確認すると下記の通り、
整数型として扱われていることが確認できました。


では、数字を先程のクォーテーションで囲むとどうなるか確認してみます。


整数型だったデータが文字列型になりました。

下記のように「1」という数列型のデータと「丁目」という文字列型のデータを
足して「1丁目」という文字列を作成したい場合、異なるデータ型同士は足し算
することができないためエラーが出力されてしまいます。


しかし「1」というデータをクォーテーションで囲み文字列型にすることで、
同じデータ型になるため、足し算をして結合することが可能になります。


よって、上記や電話番号等のように数値同士の計算に用いられない
整数については、上記のような文字列型のデータ型の方が適切です。

 

浮動小数点数型 (float型)

長い名前がついていますが、こちらはデータを小数として扱うデータ型になります。
ためしに、number という変数に 123.45 というデータを代入してみたいと思います。


例によって type関数 を使用してデータ型を確認すると下記の通り、
浮動小数点数型として扱われていることが確認できました。


Pythonは電卓のように計算をすることができるのですが、
int型のデータ同士で計算した場合は計算結果もint型で表示されます。


ただし割り算「/」に関しては int型のデータ同士 でも計算結果は float型 になります。


小数点以下を切り捨てた結果を得たい場合は「//」を使用します。

 

複素数型 (complex型)

データを複素数として扱うデータ型は「複素数型 (complex型)」と呼ばれます。

Pythonでは虚数を「j」で表します。
つまり、「jの2乗は-1」になるはずですのでこちらも実際に確認してみます。


確かに-1が出力されました。※虚数部の係数が1であっても省略することはできません

number
という変数に上記を代入して type関数 を使用してデータ型を
確認すると下記の通り複素数型として扱われていることが確認できました。

 

論理型 (bool型)

True」または「False」として扱うデータ型は「論理型 (bool型)」と呼ばれます。
いままでのデータ型とは少し毛色が違う感じがしますね。

比較演算子で数値を比較してみると「True」や「False」といった結果が得られます。


上記は「10より2の方が大きい」という命題が「偽(False)」であるという
結果が出力されている様子です。ためしに、proposition という変数に
上記の命題を代入して type関数 でデータ型を確認してみたいと思います。


たしかに、論理型として扱われていることが確認できました。

 

ここからは、複数のデータを1まとまりに格納できるデータ型たちを確認していきます。

 

リスト型 (list型)

リスト型はまとめたいデータを 大カッコ [ ] の中に カンマ区切り で格納します。
ためしに、fruits という変数に 果物の名前 をリスト型でいくつか入力してみます。


type関数 を使用してデータ型を確認すると下記の通り
リスト型として扱われていることが確認できました。


リスト型は買い物リストのように、項目を追加したり削除したりすることができます。

も食べたくなったのでリストに追加したいと思います。
データを追加する際は appendメソッド を使用します。メソッドを使用する際は
変数 + . + append()」でメソッドのカッコ内に追加したいデータを入力します。


無事にリストに追加されました。

レモンが既に家にあったのでリストから削除したいと思います。
データを削除する際は removeメソッド を使用します。メソッドを使用する際は
変数 + . + remove()」でメソッドのカッコ内に削除したいデータを入力します。


無事にリストから削除されました。

りんごではなく、正確には青りんごが欲しかったのでリストを変更したいと思います。
リストの 0番目にあるapplegreen apple に変更する際は下記のように入力します。


※人間が物を数えるときは1番目、2番目、… と自然数で数えますが、
プログラムでは一番最初を 0番目 から数えます。

 

辞書型 (dict型)

辞書型はまとめたいデータを カッコ { } の中に カンマ区切り で格納します。
見出しとなるキーと対応するデータコロン : でつないでペアにして入力します。

ためしに、fruits_color という変数に 果物の名前と色 を入力してみたいと思います。


type関数 を使用してデータ型を確認すると下記の通り
辞書型として扱われていることが確認できました。


キーを入力すると値を辞書のように引くことができます。
りんごの色を調べてみると下記のように色が出力されます。


下記のように keysメソッドvaluesメソッド を使用して
キーと値を一覧表示することもできます。

 

タプル型 (tuple型)

タプル型はまとめたいデータを カッコ ( ) の中に カンマ区切り で格納します。
fruits 変数に 果物の名前 をタプル型でいくつか入力してみます。


type関数 を使用してデータ型を確認すると下記の通り
タプル型として扱われていることが確認できました。


リスト型と非常に似ていますが、タプル型は immutable であり変更ができません。
りんご青りんごに変更したくてなっても下記のようにエラーが出てしまいます。


また、タプル型はリスト型と違い 辞書型のキー として使用することができます。

たとえば、レモン日付をセットで辞書型のキーとすることができます。
正月三が日に毎日レモンを買った人のキーを作成してみます。


そして、上記のキーを使用してレモンの個数を辞書型のデータで格納してみます。


作成した辞書型のデータ number_of_lemon(レモンの個数) を確認すると
下記の通り、タプル型のデータがキーになっていることが確認できます。


これで、何月何日レモンを何個買ったのかを辞書のように引けるようになりました。

 

集合型 (set型)

集合型はまとめたいデータを カッコ { } の中に カンマ区切り で格納します。
fruits 変数に 果物の名前 を集合型でいくつか入力してみます。


type関数 を使用してデータ型を確認すると下記の通り
辞書型として扱われていることが確認できました。


リスト型のデータを set関数 に渡して集合型のデータに変換することもできます。


集合型のデータに新しいデータを追加する際は updateメソッド を使います。
追加するデータもリスト型で指定する必要があります。


集合型のデータの特徴として、同じデータを持たない というものがあります。
すなわち、データを集合型に変換すれば重複データを削除することができます。

下記のようなリスト型のデータがあったとします。
ぱっとみでもいくつかのデータが重複していますね。


これを  set関数 に渡すと重複が削除されます。


重複が削除された集合型のデータをリスト型に戻すと
最初のリスト型のデータの重複が削除された状態になります。


集合型のデータ同士は文字通り、集合の計算をすることが可能です。
では早速、果物をベン図で分類してみたいと思います。




これを下記の通り集合型のデータでまとめてみました。

 

和集合

黄色い果物 または 緑色の果物」を和集合を使って作成してみます。
和集合は パイプ | または unionメソッド を使用します。


黄色か緑である果物が出力されました。

 

積集合

黄色い果物 かつ 緑色の果物」を積集合を使って作成してみます。
積集合は アンド & または intersectionメソッド を使用します。


黄色も緑もどちらもある果物が出力されました。

 

差集合

黄色い果物 かつ 緑色の果物 以外」を差集合を使って作成してみます。
差集合は マイナス - または differenceメソッド を使用します。


黄色のみの果物が出力されました。

 

排他的論理和集合

黄色い果物 かつ 緑色の果物 以外 または 緑色の果物 かつ 黄色い果物 以外」を
排他的論理和集合を使って作成してみます。排他的論理和集合は キャレット ^
または symmetric_differenceメソッド を使用します。


黄色のみの果物と緑のみの果物が出力されました。

 

黄色い果物 と 緑色の果物 補集合があるのでこちらも確認してみます。

1「黄色い果物 または 緑色の果物 以外


2「黄色い果物 以外 かつ 緑色の果物 以外


3「黄色い果物 かつ 緑色の果物 以外


4「黄色い果物 以外 または 緑色の果物 以外


黄色い果物 と 緑色の果物 補集合である grapepeach が出力されました。

が同じ結果となり、が同じ結果になっています。
(ド・モルガンの法則ですね)

 

以上、Pythonのデータ型についてのまとめでした。

最後までご覧いただきありがとうございました。