【python初学者向け】リストとタプルの違いを簡単に説明します

今日はリストとタプルの違いを簡単に見ていきます。

よくリストはミュータブルタプルはイミュータブルと表現されています。

今日は実際にコードを書いて実感していきましょう。

versions
  • python 3.9.4

リストとタプルを作成していこう

ミュータブルとイミュータブルって何?
  • ミュータブルとは,「変更可能」
  • イミュータブルとは,「変更不可能」

まずはリストオブジェクトとタプルオブジェクトを用意していきます。

# list
l1 = [1, 2, 3]
l2 = [4]

# tuple
t1 = ('tanaka', 'suzuki', 'yamada')
t2 = ('sato',)

リストが[](角かっこ)でタプルが()(丸かっこ)ですね!

オブジェクトのidを確認してみよう

ここからが本番です。

実際にミュータブルとイミュータブルの違いを見ていきましょう。

まずはリストです。

>>> l1 = [1,2,3]
>>> l2 = [4]

# idを確認
>>> id(l1)
4413861568

>>> l1 += l2
>>> l1
[1, 2, 3, 4]

# idが書き変わっていないことを確認
>>> id(l1)
4413861568

次にタプルです。

>>> t1 = ('tanaka', 'suzuki', 'yamada')
>>> t2 = ('sato',)

# idを確認
>>> id(t1)
4414372288

>>> t1 += t2
>>> t1
('tanaka', 'suzuki', 'yamada', 'sato')

# idが書き変わっていることを確認
>>> id(t1)
4413881056

タプルの場合は、t1というオブジェクトを再生成しています。

これが、イミュータブルの正体です。

まとめ

  • リストはミュータブル
  • タプルはイミュータブル
  • オブジェクトのidを調べると簡単に理解できる

参考

入門 python3