Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのタプルとリストの違いと共通点を徹底解説

Pythonには、複数の要素を順序付けて格納できる「シーケンス型」と呼ばれるデータ構造があります。その代表格がリスト(list)タプル(tuple)です。どちらもカンマで区切った複数の要素を持ち、要素のデータ型が混在していても問題ありません。

リストとタプルの共通点

リストとタプルはどちらもシーケンス型であるため、連結・繰り返し・インデックス参照・スライスといった基本操作を共通して行うことができます。

連結・繰り返し・インデックス参照・スライス

>>> # リストの操作
>>> L1 = [1, 2, 3]
>>> L2 = [4, 5, 6]
>>> # 連結
>>> L3 = L1 + L2
>>> L3
[1, 2, 3, 4, 5, 6]
>>> # 繰り返し
>>> L1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> # インデックス参照
>>> L3[4]
5
>>> # スライス
>>> L3[2:4]
[3, 4]
>>> # タプルの操作
>>> T1 = (1, 2, 3)
>>> T2 = (4, 5, 6)
>>> # 連結
>>> T3 = T1 + T2
>>> T3
(1, 2, 3, 4, 5, 6)
>>> # 繰り返し
>>> T1 * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> # インデックス参照
>>> T3[4]
5
>>> # スライス
>>> T3[2:4]
(3, 4)

共通して使える組み込み関数

以下の組み込み関数は、リストとタプルの両方に使用できます。

len() … シーケンスに含まれる要素数を返します。

>>> L1 = [45, 32, 16, 72, 24]
>>> len(L1)
5
>>> T1 = (45, 32, 16, 72, 24)
>>> len(T1)
5

max() … 値が最も大きい要素を返します。

>>> max(L1)
72
>>> max(T1)
72

min() … 値が最も小さい要素を返します。

>>> min(L1)
16
>>> min(T1)
16

このほかにも、sum()(合計)、sorted()(ソートした新しいシーケンスの生成)、index()(要素の位置検索)、count()(要素の出現回数)なども両方で利用できます。

リストとタプルの違い

最大の違いは、オブジェクトが変更可能(ミュータブル)か変更不可能(イミュータブル)かという点です。

リストは変更可能(ミュータブル)

リストは作成後でも要素の追加・挿入・削除・更新が自由に行えます。

>>> L1 = [45, 32, 16, 72, 24]
>>> L1.append(56)       # 末尾に要素を追加
>>> L1
[45, 32, 16, 72, 24, 56]
>>> L1.insert(4, 10)    # インデックス4の位置に10を挿入
>>> L1
[45, 32, 16, 72, 10, 24, 56]
>>> L1.remove(16)       # 値16を持つ要素を削除
>>> L1
[45, 32, 72, 10, 24, 56]
>>> L1[2] = 100         # 要素を更新
>>> L1
[45, 32, 100, 10, 24, 56]

タプルは変更不可能(イミュータブル)

一方、タプルは一度作成すると内容を変更できません。変更を試みる操作を行うとエラーが発生します。

>>> T1.append(56)
AttributeError: 'tuple' object has no attribute 'append'
>>> T1.remove(16)
AttributeError: 'tuple' object has no attribute 'remove'
>>> T1[2] = 100
TypeError: 'tuple' object does not support item assignment

違いのまとめ一覧

項目リストタプル
記法[ ](角括弧)( )(丸括弧)
可変性変更可能(ミュータブル)変更不可能(イミュータブル)
追加・削除・更新可能不可
辞書のキーとして使用不可可能
主な用途内容が変わるデータの集合固定値・定数・座標データなど

使い分けのポイント

後から要素を追加・削除・変更する可能性があるデータにはリストを、プログラム実行中に変更しない固定データ(設定値、日付、座標など)にはタプルを使うのが一般的です。タプルはイミュータブルであるため、意図しない変更からデータを保護できるだけでなく、わずかに高速でメモリ効率も良いというメリットがあります。

  1. Wi-Fi 6と5Gの違いとは?特徴・速度・使い分けを徹底解説

    5Gネットワークは、SNSなどでも頻繁に話題になる注目の技術です。同様に、Wi-Fi 6への期待も高まっていますが、これは5Gとはまったく異なる技術です。本記事では、Wi-Fi 6と5Gネットワークの違いをわかりやすく解説します。 Wi-Fi 6とは? Wi-Fi 6は、IEEE 802.11ax規格に基づく新しい認証プログラムです。従来のWi-Fi技術と異なる最大の特徴は、より遠い距離でも高速な接続を実現できる点にあります。複数のデバイスが同時に接続されていても安定したパフォーマンスを発揮し、電源環境に多少の問題があっても性能が低下しにくいという優れた特性を持っています。 Wi-Fi 6は

  2. Windows 10とWindows 11の違いを徹底比較!アップグレードすべきか判断するポイント

    Microsoft(マイクロソフト)は、数々の新機能と改善点を盛り込んだ最新OS「Windows 11」をリリースしました。一方で、これまで数多くのパッチやアップデートが適用されてきたWindows 10は、新しいWindows 11よりも安定したOSと言えます。Microsoftによると、Windows 10のサポートは2025年以降に終了する予定のため、Windows 11へアップグレードするか、Windows 10を使い続けるかを検討する時間は十分にあります。この記事では、Windows 10とWindows 11の性能・機能・改善点を比較し、新しいOSへ移行すべきか、それともWindo