Python データ型マスター: 実践ガイド
Python データ型
このガイドでは、Pythonの主要データ型を歩いて回り、それらの仕組みと相互変換を解説します。
Pythonのデータ型
Pythonのすべての値はオブジェクトであり、各オブジェクトはその型を定義するクラスのインスタンスです。これらの型を理解することは、明確で効率的かつ信頼性の高いコードを書くために不可欠です。
以下では最も頻繁に使われるデータ型をカバーします:数値、リスト、タプル、文字列、セット、辞書。
Python 数値
Pythonの数値型にはint、float、complexがあります。type()で値のクラスを調べ、isinstance()でクラス階層への所属をテストできます。
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j, complex))
出力
5 is of type <class 'int'> 2.0 is of type <class 'float'> (1+2j) is complex number? True
整数は利用可能メモリによってのみ制限される任意の大きさを持ちます。浮動小数点数は約15桁の精度で正確。例えば1は整数、1.0は浮動小数点数です。
複素数はx + yjの形式で、xが実部、yが虚部。サンプル値:
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
浮動小数点数bは精度制限に合わせて切り捨てられました。
Python リスト
リストは順序付きで変更可能なシーケンスで、任意の型の要素を含められます。角括弧で宣言し、要素はカンマで区切ります:
a = [1, 2.2, 'python']
スライシングで部分配列を取得。インデックスは0から開始:
a = [5,10,15,20,25,30,35,40]
print("a[2] = ", a[2])
print("a[0:3] = ", a[0:3])
print("a[5:] = ", a[5:])
出力
a[2] = 15 a[0:3] = [5, 10, 15] a[5:] = [30, 35, 40]
リストは変更可能。要素の再代入が可能:
a = [1, 2, 3]
a[2] = 4
print(a)
出力
[1, 2, 4]
Python タプル
タプルは順序付きだが不変。データ保護に使われ、サイズが変わらないためリストよりわずかなパフォーマンス優位性があります。丸括弧で定義:
t = (5,'program', 1+3j)
スライシングは動作するが、再代入はエラー:
t = (5,'program', 1+3j)
print("t[1] = ", t[1])
print("t[0:3] = ", t[0:3])
# t[0] = 10
# would raise TypeError
出力
t[1] = program t[0:3] = (5, 'program', (1+3j))
Python 文字列
文字列はUnicode文字の不変シーケンス。シングル/ダブルクォート、複数行にはトリプルクォートを使用。
s = "This is a string"
print(s)
s = '''A multiline string'''
print(s)
出力
This is a string A multiline string
スライシングは動作するが、文字変更を試みるとエラー:
s = 'Hello world!'
print("s[4] = ", s[4])
print("s[6:11] = ", s[6:11])
# s[5] = 'd'
# would raise TypeError
出力
s[4] = o s[6:11] = world
Python セット
セットは一意なアイテムの順序なしコレクション。波括弧で定義。重複を自動排除し、和集合・積集合などの集合演算をサポート。
a = {5,2,3,1,4}
print("a = ", a)
print(type(a))
出力
a = {1, 2, 3, 4, 5}
<class 'set'>
重複は自動削除:
a = {1,2,2,3,3,3}
print(a)
出力
{1, 2, 3}
セットは順序なしのため、インデックスアクセスとスライシングはサポートされません。
Python 辞書
辞書はキー・バリューペアを格納し、キーによる検索に高度に最適化されています。キーと値は任意のハッシュ可能な型。
d = {1:'value','key':2}
print(type(d))
print("d[1] = ", d[1])
print("d['key'] = ", d['key'])
# print("d[2] = ", d[2]) # KeyError
出力
<class 'dict'> d[1] = value d['key'] = 2
データ型間の変換
Pythonは組み込みコンストラクタで型変換を提供:int()、float()、str()など。floatからintへの変換はゼロ方向に切り捨て。
float(5) # 5.0
int(10.6) # 10
int(-10.6) # -10
文字列変換には互換性のある表現が必要:
float('2.5') # 2.5
str(25) # '25'
# int('1p') # ValueError
シーケンス間の相互変換:
set([1,2,3]) # {1, 2, 3}
tuple({5,6,7}) # (5, 6, 7)
list('hello') # ['h', 'e', 'l', 'l', 'o']
ペアのイテラブルから辞書を作成:
dict([[1,2],[3,4]]) # {1: 2, 3: 4}
dict([(3,26),(4,44)]) # {3: 26, 4: 44}
Python
- 5つのデータセンターモデルを解説:設計、ユースケース、事例
- 2021年の主要クラウドコンピューティングモデル8選
- データ侵害の8つの典型タイプ:実例と影響を徹底解説
- C# 変数とプリミティブデータ型:完全マスターガイド
- C++データ型完全ガイド:基本型、修飾子、ベストプラクティス
- C言語データ型完全解説:int、float、charなど
- C言語のデータ型完全ガイド:整数、浮動小数点、void型
- MATLABデータ型完全ガイド:15種類の基本型と変換・判定関数
- Python 型変換とキャスト: 包括的ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド