Python には、数値、テキスト、コレクションなどを扱う豊富な組み込み型が用意されています。それらを把握すること、そしてどれが**ミュータブル(可変)でどれがイミュータブル(不変)**かを知ることは、基礎として欠かせません。
数値型
python
x = 42 # int — arbitrary precision (no overflow!)
y = 3.14 # float
z = +
b =
注意:Python の int は任意精度であり、決してオーバーフローしません(C/Java の固定サイズ整数とは異なります)。2 ** 1000 も問題なく動作します。
s = "hello" # str — Unicode text (immutable)
data = b"bytes" # bytes — raw binary (immutable)
lst = [1, 2, 3] # list — ordered, MUTABLE, allows duplicates
tup = (1, 2, 3) # tuple — ordered, IMMUTABLE
d = {"a": 1, "b": 2} # dict — key→value, mutable, insertion-ordered
s = {1, 2, 3} # set — unordered, unique elements, mutable
fs = frozenset({1, 2}) # frozenset — immutable set
result = None # NoneType — represents "no value" (like null)
if result is None: # always compare to None with `is`, not ==
...
type(x) # <class 'int'>
isinstance(x, int) # True — the preferred check (handles subclasses)
Immutable: int, float, bool, str, tuple, frozenset, bytes, None
Mutable: list, dict, set, bytearray
この区別は非常に重要です。イミュータブルなオブジェクトは dict のキーにでき、共有しても安全です。一方、ミュータブルなものはエイリアスされると予期せず変化することがあります。
組み込み型は、あらゆる Python コードの語彙です。
それぞれの用途(順序付きシーケンスには list、key-value には dict、一意性には set、固定レコードには tuple)、任意精度の整数、そして特にミュータブル対イミュータブルの区別(dict のキー、エイリアスのバグ、安全に共有できるものを左右する)を知っておくことは基礎となります。
用途に応じて適切な型を選び、その可変性を理解することは、プログラム全体の正しさとパフォーマンスに影響する、Python の中核的なスキルです。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する