0Pricing
Python Academy · レッスン

タプルと不変性

タプルとその不変性を理解し、リストよりタプルを選ぶ場面を学びます。

「タプルと不変性」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

はじめに

タプルは順序付きで変更できないシーケンスです。一度作成すると、その要素を変更することはできません。

タプルの作成

t = (1, 2, 3) または t = 1, 2, 3(括弧は省略可能です)。要素が1つだけのタプルには末尾にカンマが必要です: t = (1,)。
t = (1, 2, 3)
singleton = (42,)
print(t, singleton)

タプルの不変性

t[0] = 99 を実行すると TypeError が発生します。タプルは作成後に変更できません。これがタプルの特徴です。
t = (1, 2, 3)
# t[0] = 99  # TypeError
print(t[0])

タプルのインデックス参照とスライス

t[0]、t[-1]、t[1:3] はリストと同じように使えます。タプルは読み取り操作をすべてサポートしています。
t = (10, 20, 30)
print(t[1])
print(t[:2])

タプルのパッキングとアンパッキング

a, b = (1, 2) はタプルをアンパックします。次のようにして、temp 変数を使わずに変数を入れ替えることもできます: a, b = b, a。
a, b = 1, 2
a, b = b, a
print(a, b)

辞書のキーとしてのタプル

タプルはハッシュ可能なので、dict のキーにできます: coords = {(0,0): 'origin'}。リストは dict のキーにできません。
coords = {(0, 0): 'origin', (1, 0): 'right'}
print(coords[(0, 0)])

タプルとリスト — 使い分け

構造が固定された異種データ(例: (name, age))にはタプルを使います。同種で長さが変わるデータにはリストを使います。
point = (3.0, 4.0)  # tuple: fixed structure
scores = [85, 90, 78]  # list: variable

名前付きタプル

from collections import namedtuple; Point = namedtuple('Point', ['x','y']); p = Point(3,4); p.x は 3 を返します。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
print(p.x, p.y)

タプルのメソッド

タプルには count() と index() しかありません。t.count(2) は出現回数を数えます。t.index(2) は最初の位置を返します。
t = (1, 2, 2, 3)
print(t.count(2))
print(t.index(2))

タプルのパフォーマンス

Python は不変オブジェクトを最適化できるため、タプルはリストよりわずかに高速で、使用するメモリも少なくなります。
import sys
print(sys.getsizeof((1,2,3)))
print(sys.getsizeof([1,2,3]))

リストとタプルの相互変換

list(t) はタプルをリストに変換します。tuple(lst) はリストをタプルに変換します。一時的に変更可能にしたい場合に便利です。
t = (1, 2, 3)
lst = list(t)
lst.append(4)
t2 = tuple(lst)
print(t2)

確認問題

タプルは辞書のキーにできますが、リストはできないのはなぜですか。

まとめ

タプルは不変で、順序があり、ハッシュ可能です。構造が固定されたデータ、dict のキー、複数の戻り値に使います。namedtuple を使うと属性でアクセスできます。

次へ進む

よくできました。次のレッスンに進み、引き続きスキルを身につけていきましょう。

よくある質問

「タプルと不変性」レッスンは無料ですか?

はい。「タプルと不変性」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「タプルと不変性」で何を学びますか?

タプルとその不変性を理解し、リストよりタプルを選ぶ場面を学びます。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「タプルと不変性」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. リストの作成とアクセス
  2. リストの変更
  3. タプルと不変性
  4. 入れ子になったリストと反復処理
← Python Academyに戻る