Pythonはシンプルで使いやすいプログラミング言語ですが、データの種類(データ型)を理解することはとても重要です。データ型を知っておくことで、エラーを避けたり、効率的なコードを書いたりすることができます。
本記事では、Pythonの主要なデータ型について初心者向けに分かりやすく解説します。
Pythonのデータ型
Pythonは動的型付け言語と言われています。型を明示的に宣言しなくても自動的に型が決まる仕組みになっています。そのため、データ型の宣言は不要です。
Pythonの主なデータ型
数値系 | 整数型(int) 浮動小数点型(float) |
文字列系 | 文字列型(str) バイト型(bytes) |
コレクション系 | リスト型(list) タプル型(tuple) 辞書型(dict) 集合型(set) |
その他 | 真偽型(bool) None |
数値系
Pythonでは、数値を扱うためにいくつかのデータ型が用意されています。
整数型(int)
整数を表すデータ型で、負の数も扱えます。
x = 10
print(type(x)) # <class 'int'>
Pythonでは、整数のサイズに制限はなく、大きな数値も扱えます。
浮動小数点型(float)
小数を含む数値を扱うためのデータ型です。
y = 3.14
print(type(y)) # <class 'float'>
文字列系
文字を扱う型です。文字列型とバイト型があります。
文字列型(str)
文字列型は、日本語などを含む文字列を表します。内部的にはUnicodeになっています。
s = "Hello, Python!"
print(type(s)) # <class 'str'>
文字列はシングルクォート(’)またはダブルクォート(”)で囲むことで定義できます。
文字列の操作例:
name = "Alice"
print(name.upper()) # 大文字変換
print(name.lower()) # 小文字変換
print(name[0]) # 先頭の文字を取得
バイト型(Bytes)
バイト型(bytes)は、バイナリデータを扱うためのデータ型です。
「b」を前置きすることによって、bytes型になり、str型とは別のものになります。
b = b"Hello"
print(type(b)) # <class 'bytes'>
バイト型は主にファイルの読み書きやネットワーク通信で使用されます。
byte_array = bytes([72, 101, 108, 108, 111]) # "Hello"のバイト表現
print(byte_array) # b'Hello'
コレクション系
コレクションとは、複数のオブジェクトを格納できる型の総称です。
Pythonでは、データ型のベースクラスが”object”を継承しています。つまり、数値型や文字型のこともすべてオブジェクトと言います。
コレクションの中にコレクションを入れるといった、入れ子構造も可能です。
リスト型(List)
リスト(list)は、複数の要素を順番に格納できるデータ型です。
numbers = [1, 2, 3, 4, 5]
print(type(numbers)) # <class 'list'>
リストは、インデックスを使ってアクセスできます。
print(numbers[0]) # 1
print(numbers[-1]) # 5(最後の要素)
要素の追加や削除も可能です。
numbers.append(6) # 末尾に追加
numbers.remove(3) # 指定した要素を削除
タプル型(Tuple)
タプル(tuple)は、リストと似ていますが、要素を変更できない(イミュータブル)データ型です。
tuple_example = (1, 2, 3)
print(type(tuple_example)) # <class 'tuple'>
タプルは不変なので、要素の追加や削除ができません。
辞書型(Dict)
辞書型(dict)は、キーと値のペアを保持するデータ型です。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(type(person)) # <class 'dict'>
集合型(Set)
集合型(set)は、重複しない要素を格納するデータ型です。
unique_numbers = {1, 2, 3, 4, 4, 5}
print(type(unique_numbers)) # <class 'set'>
print(unique_numbers) # {1, 2, 3, 4, 5}
集合型は、リストやタプルとは異なり、要素が重複しません。また、順序も保証されません。
集合型の操作例:
set_a = {1, 2, 3}
set_b = {3, 4, 5}
print(set_a.union(set_b)) # {1, 2, 3, 4, 5}(和集合)
print(set_a.intersection(set_b)) # {3}(積集合)
print(set_a.difference(set_b)) # {1, 2}(差集合)
コレクションの種類のまとめ
名称 | リスト型 | タブル型 | 辞書型 | 集合型 |
コンストラクタ | list() | tuple() | dict() | set() |
定義 | [‘a’, ‘b’] | (‘a’, ‘b’) | {“a”: 1, “b”: 2} | {“a”, “b”} |
順序 | 持つ | 持つ | 持たない | 持たない |
変更可否 | 可 | 不可 | 可 | 可 |
重複 | 可 | 可 | キーは不可 | 不可 |
取り出し | 添字 | 添字 | キー | 無 |
特徴 | 汎用的 | 変更不可 | キー:値 の組み合わせ |
重複除去 集合演算 |
その他
真偽型(bool)
真偽型(bool)は、True(真)またはFalse(偽)を取るデータ型です。
is_python_fun = True
print(type(is_python_fun)) # <class 'bool'>
主に条件分岐などに使用されます。
x = 5
y = 10
print(x > y) # False
print(x < y) # True
None
Noneは何もしないということを表す特別な型です。
まとめ
本記事では、Pythonの主要なデータ型について初心者向けに分かりやすく説明しました。