リストとタプル:リストとタプルの違い
公開: 2021-01-08Pythonでは、listとtupleは、1つ以上のオブジェクトまたは値を格納できるデータ構造のクラスです。 リストは、1つの変数に複数のアイテムを格納するために使用され、角かっこを使用して作成できます。 同様に、タプルは1つの変数に複数の項目を格納でき、括弧を使用して宣言できます。
リストとタプルの間には多くの違いがありますが、次のようにいくつかの類似点もあります。
- 2つのデータ構造は、どちらもアイテムのコレクションを格納するシーケンスデータ型です。
- あらゆるデータタイプのアイテムを保存できます。
- アイテムはインデックスでアクセスできます。
目次
リストとタプル
次の表には、Pythonのリストとタプルの基本的な違いが含まれています。
リスト | タプル |
可変です | 不変です |
反復の意味は、リストでは時間がかかります。 | タプルでは、反復の影響がはるかに速くなります。 |
挿入や削除などの操作がより適切に実行されます。 | 要素へのアクセスが向上します。 |
より多くのメモリを消費します。 | 消費するメモリが少なくなります。 |
多くの組み込みメソッドが利用可能です。 | 多くの組み込みメソッドはありません。 |
予期しないエラーや変更がリストで簡単に発生する可能性があります。 | タプルで予期しないエラーや変更が発生することはめったにありません。 |
次のセクションでは、理解を深めるために、リストとタプルの詳細なバージョンを示します。
構文の違い
はじめに述べたように、listとtupleの構文は異なります。 例えば:
list_num = [10、20、30、40]
tup_num =(10、20、30、40)
可変性
リストとタプルの最も重要な違いの1つは、リストは可変であるのに対し、タプルは不変であるということです。 これは、リストを変更でき、タプルを変更できないことを意味します。
したがって、一部の操作はリストでは機能しますが、タプルでは機能しません。 たとえば、データサイエンスでは、リストがすでに存在する場合、その特定の要素を再割り当てできます。 これに伴い、リスト全体を再割り当てできます。 要素と要素のスライスをリストから削除できます。
一方、タプルの特定の要素を再割り当てまたは削除することはできませんが、それをスライスしたり、タプル全体を再割り当てして削除したりすることはできます。 タプルは不変であるため、コピーできません。
チェックアウト: PythonとJava
操作
リストとタプルの両方に類似した多くの操作がありますが、リストにはタプルでは使用できない追加の機能があります。 これらは、挿入操作とポップ操作、およびリスト内の要素の並べ替えと削除です。
関数
一部のPython関数は、len、max、min、any、sum、all、sortedなどの両方のデータ構造に適用できます。

サイズ
Pythonでは、タプルは不変であるため、オーバーヘッドの少ない大きなメモリブロックが割り当てられます。 一方、リストの場合、小さなメモリブロックが割り当てられます。 2つの間では、タプルのメモリは小さくなります。 これは、要素が多数ある場合に、タプルをリストよりも高速にするのに役立ちます。
要素のタイプ
異なるデータ型に属する要素、つまり異種要素は通常、タプルに格納されます。 同種の要素(同じデータ型の要素)は通常、リストに格納されます。 ただし、これはデータ構造の制限ではありません。 同様のデータ型要素をタプルに格納でき、異なるデータ型要素をリストに格納することもできます。
長さ
長さは2つのデータ構造で異なります。 タプルの長さは固定ですが、リストの長さは可変です。 したがって、作成されたリストのサイズは変更できますが、タプルの場合はそうではありません。
デバッグ
デバッグに関しては、リストとタプルでは、タプルは不変であるため、大規模なプロジェクトのデバッグが容易です。 したがって、プロジェクトが小さい場合やデータ量が少ない場合は、リストを使用することをお勧めします。 これは、リストは変更できますが、タプルは変更できないため、タプルの追跡が容易になるためです。
ネストされたリストとタプル
タプルはリストに格納でき、同様に、リストはタプル内に格納できます。 ネストされたタプルでは、タプルはより多くのタプルを保持できます。 また、ネストされたリストでは、リストはより多くのリストを保持できます。
用途
次のような、これらのデータ構造の1つを使用する方がよい場合があることを理解することが重要です。 どちらを使用するかはプログラマーによって異なります。つまり、後でデータを変更するかどうかに基づいてどちらかを選択します。
タプルは、データを格納するためのキーのない辞書と同等に使用できます。 タプルがリスト内に格納されていると、データの読み取りが容易になります。
読む: Pythonのその他のタイプのデータ構造
結論
この記事は、リストとタプルの違いを理解するのに役立ちます。 どちらのタイプもPythonのデータ構造ですが、選択する際にはこれらの違いに精通していることが重要です。 覚えておくべき最も重要な違いは、リストは可変であり、タプルは可変ではなく、リストは可変サイズであり、タプルは固定サイズであるということです。 最後に、タプルでの操作をより高速に実行できます。
この記事を読んでいるなら、Python開発者になるという野心を持っている可能性があります。 Pythonの学習に興味があり、さまざまなツールやライブラリを手に入れたい場合は、IIIT-BとupGradのデータサイエンスのエグゼクティブPGプログラムをご覧ください。
データの保存にPythonリストが優先されるのはいつですか?
Pythonリストは、次のシナリオでデータを格納するのに最適なデータ構造であると見なされます。リストは、さまざまなデータ型のさまざまな値を格納するために使用でき、それぞれのインデックスだけでアクセスできます。 要素に対して数学演算を実行する必要がある場合は、要素を直接数学演算できるため、リストを使用できます。 リストはサイズを変更できるため、保存する要素の数がわからない場合にデータを保存するために使用できます。
namedtupleのさまざまな操作を説明します。
Pythonのnamedtupleは、さまざまな操作を実行します。 以下は、namedtupleによって実行される最も一般的な操作のリストです-インデックスによるアクセス、キー名によるアクセス、make()、_asadict()、「**」(二重星)演算子、_fileds()、_replaceを使用()など
リストを作成するさまざまな方法は何ですか?
Pythonリストは、ここに記載されている複数の方法で作成できます。 forループの使用-forループは、リストを作成するための最も基本的な方法です。 リストは、forループを使用して、3つの簡単な方法で作成できます。空のリストを作成し、挿入するすべての要素を反復処理し、append()関数を使用してリスト内の各要素を追加します。 map()の使用:Pythonのmap()関数を代わりに使用して、リストを作成できます。 この関数は、2つのパラメーターを受け入れます。関数:マップが各反復可能オブジェクトを渡す関数と反復可能:マップされる要素または反復可能オブジェクト。 リスト内包表記の使用:この方法は、3つの方法すべての中で最も最適化されています。 上記のメソッドでは、最初に空のリストを作成する必要がありますが、リスト内包表記を使用すると、1行を使用してリスト内のすべての要素を挿入できます。