どの言語もそうですが、pythonもいろいろな変数の型が用意されています。今回はよく使用される変数の型について調べてみました。
よく使用する変数の型
最低限理解しておきたい変数の型
変数の型 | 意味 |
bool型 | ブール値 |
bytes型 | バイト列 |
int型 | 整数 |
float型 | 浮動小数点 |
str型 | 文字列 |
list型 | リスト型 |
tuple型 | タプル |
range型 | 指定した範囲の整数列 |
set型 | 集合 |
dict型 | 辞書 |
数値
整数や浮動小数点などの数値を扱う型です。ブール値はTrue or Falseですが内部では0か1なので数値型に分類されます。
- bool型(ブール)
- int型(整数)
- float型(浮動小数点)
コレクション
複数のデータを格納することができる変数の型です。簡単に分類すると
シーケンス
データを順番に並べたもののひとかたまりのデータで配列とも呼ばれています。シーケンスのデータはインデックスという番号が振られて添字でデータを参照することができます。インデックスの先頭は0から始まります。tuple型はおそらくあまり聞いたことがないと思いますが要素の追加/変更/削除ができないリストでデータの変更がなく固定の場合は,リストよりタプルを使用したほうが処理が速いといわれています。
- bytes型(バイト列)
- str型(文字列)
- list(リスト)
- tuple(タプル)・・・定数型リスト
- range型
集合
シーケンスに分類されているリスト型と同じように複数のデータを格納できます。リストとの違いが難しいですが違いは,重複したデータは無視されることと、シーケンスのように順番がないということです。
- set型
マッピング
キーと値を持つデータの集まりで、キーを指定するとデータを素早く取得することができます。
- dict型(辞書)
イテラブルとイテレータ
イテラブルとは上記変数などの繰り返し処理が可能なことそのものを指しています。上記で記載しているものは、for文で繰り返し実行ができるのでイテラブルな変数です。
近い言葉でイテレータがありますが、これは繰り返し処理を行うために一時的にコピーして使う変数で生成すると一度だけループ処理を行うことができます。
イミュータブルとミュータブル
イミュータブルは一度生成されると変更できない。逆に生成した後に変更できる性質はミュータブルと呼ばれています。
上記でイミュータブルな変数は
- bool型
- bytes
- int
- float
- str
- tuple
- range
使用できない変数
基本的に変数は大体のものは使用可能ですが、pythonの予約語として登録されている文字列は変数や関数名/クラス名としても利用できません。現在登録されている予約語はkeywordモジュールで簡単に確認することができます。
import keyword as kw
print(kw.kwlist)
実行結果 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
私の環境では、予約語として登録されているのは35ワードが登録されていました。見る限りほとんどは、なんとなく条件演算子などで使っているので使用してはいけないというのはなんとなくわかりますが、passなどは他の言語では予約語になっていないものもあるので一度確認しておいた方がいいかもです。passは無視という意味合いもありますが合格という意味もあるので結構変数に使っている人はいるような気がするので注意しましょう。
まとめ
- 変数の種類は主に数値とコレクションがある。
- コレクションを分類するとシーケンス・集合・マッピングに分かれる。
- イテラブルは繰り返し可能という意味
- イテレータは、一時的にコピーしてループ処理を行う変数
- イミュータブルは一度生成すると変更できない
- ミュータブルは生成後も変更可能
- Python自体が予約語として登録している識別子は変数に使用できない。
- 予約語はkeywordモジュールのkwlistで簡単に調べられる。
コメント