カテゴリ: Python 更新日: 2025/06/13

Pythonのイミュータブルとは?変更できないデータ型の特徴を解説

Pythonのイミュータブルとは?変更できないデータ型の特徴を解説
Pythonのイミュータブルとは?変更できないデータ型の特徴を解説

先生と生徒の会話形式で理解しよう

生徒

「先生、イミュータブルって何ですか?名前が難しそうです…」

先生

「イミュータブルとは『変更できない』という意味ですよ。Pythonのいくつかのデータ型は一度作ると中身を変えられないんです。」

生徒

「どういうときに便利なんですか?」

先生

「たとえば文字列やタプルはイミュータブルだから、安心して使えるんですよ。それでは、例を見ながら学びましょう!」

-

1. イミュータブルとは?

1. イミュータブルとは?
1. イミュータブルとは?

イミュータブル(immutable)とは、「変わらない」「変更できない」という意味の英語です。プログラミングでは、一度作った値を後から変えてはいけないデータ型を指します。

初心者の方には、粘土細工に例えるとわかりやすいです。粘土(mutable)は揉んで形を変えられますが、石(immutable)は一度できたら形が変えられません。

2. イミュータブルな代表的なデータ型

2. イミュータブルな代表的なデータ型
2. イミュータブルな代表的なデータ型

Pythonでイミュータブルなデータ型はいくつかあります。代表的なものは次の通りです:

  • 文字列(str)
  • 数値(int, float)
  • タプル(tuple)
  • frozenset

これらは一度作ると「中身が変わらない」ため、重要な値を安全に使いたいときに便利です。

3. 文字列(str)はなぜイミュータブル?

3. 文字列(str)はなぜイミュータブル?
3. 文字列(str)はなぜイミュータブル?

text = "hello"
text[0] = "H"  # エラーになります
print(text)

TypeError: 'str' object does not support item assignment

文字列は中身を直接書き換えることができません。変更したいときは、新しい文字列を作ります。

4. タプル(tuple)で中身を固定する

4. タプル(tuple)で中身を固定する
4. タプル(tuple)で中身を固定する

t = (1, 2, 3)
print(t[1])
# t[1] = 5  # これはダメです

タプルもイミュータブルなので、中の値を変更しようとするとエラーになります。

-

5. イミュータブルとミュータブルの違い

5. イミュータブルとミュータブルの違い
5. イミュータブルとミュータブルの違い

ミュータブルとは「変更できる(mutable)」という意味です。代表的なものはリスト(list)や辞書(dict)です。


lst = [1, 2, 3]
lst[0] = 10
print(lst)  # [10, 2, 3]

リストは中身を書き換えられ、これはミュータブルです。

6. イミュータブルのメリットとは?

6. イミュータブルのメリットとは?
6. イミュータブルのメリットとは?
  • 値が変わらないため、安全で予測しやすい
  • 複数人での作業でも意図しない変更を防ぎやすい
  • ハッシュ可能なので、辞書や集合のキーに使える

このように、変更不可の特性を活かして、信頼性の高いプログラムが作れます。

7. イミュータブルを使った実用例

7. イミュータブルを使った実用例
7. イミュータブルを使った実用例

例として、設定値や定数にイミュータブルを使うと安心です:


COLORS = ("red", "green", "blue")
PI = 3.1415

こうすると、プログラムの途中で値が変わらず、間違いが少なくなります。

8. イミュータブルを活かしてバグを減らそう

8. イミュータブルを活かしてバグを減らそう
8. イミュータブルを活かしてバグを減らそう

プログラムを書くときは、必要に応じてイミュータブルとミュータブルを使い分けましょう。不要な変更を避けて、コードの信頼性や読みやすさが向上します。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
Pythonで複数の条件を組み合わせる方法!and・or・notの使い方
Pythonの例外処理(try-except)の基本と応用!エラーハンドリング完全ガイド
Pythonの三項演算子とは?一行で条件分岐を記述する方法
Pythonのmatch文(パターンマッチング)の使い方!switch文の代替
人気記事
No.1
Java&Spring記事人気No1
PHP のセッションの有効期限を設定する方法(session_set_cookie_params)
No.2
Java&Spring記事人気No2
PHP の関数のスコープを完全解説!ローカル変数とグローバル変数の違いとは?
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP の XSS(クロスサイトスクリプティング)対策を完全解説!初心者向けガイド
-