[解決済み] リストとタプルの違いは何ですか?
質問
何が違うのですか?
タプル/リストの利点/欠点は何ですか?
どのように解決するのですか?
タプルは不変であるということ以外に、その使い方を導くべき意味上の区別があります。タプルは異種データ構造(すなわち、そのエントリーが異なる意味を持つ)であるのに対し、リストは同種のシーケンスです。 タプルには構造があり、リストには順序がある。
この区別をすることで、コードがより明示的になり、理解しやすくなります。
例えば、本の中の場所を参照するためのページ番号と行番号のペアは、次のようなものである。
my_location = (42, 11) # page number, line number
そして、これを辞書のキーとして、場所に関するメモを保存することができます。一方、リストは複数の場所を保存するために使用することができる。当然、リストに場所を追加したり、削除したりすることができる。一方、既存の場所から項目を追加したり削除したりすることは意味がない。したがって、タプルは不変である。
例えば、ページの行を反復するときなど、既存のロケーションタプルの中の項目を変更したい場合があるかもしれません。しかし、タプルの不変性により、新しい値ごとに新しい位置タプルを作成することを余儀なくされる。これは一見不便に見えますが、このように不変なデータを使うことは、値型や関数型プログラミング技術の基礎であり、大きな利点となります。
この問題については、例えば、以下のような興味深い記事があります。 Pythonのタプルは単なる定数リストではありません"。 または "Pythonのタプルとリストを理解する" . Pythonの公式ドキュメント も言及しています。
<ブロッククオート"タプルは不変であり、通常、異種列を含む ..."。
のような静的型付け言語では ハスケル タプルの値は一般的に異なる型を持ち、タプルの長さは固定でなければなりません。リストでは、値はすべて同じ型であり、長さは固定されていない。だから、この違いは非常に明白だ。
最後に 名前付きタプル Pythonでは、タプルはすでに構造を持っていると考えられているので、これは理にかなっています。これは、タプルがクラスやインスタンスに代わる軽量な代替品であるという考えを強調しています。
関連
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Pythonで標準エラー出力するには?
-
[解決済み] リストにおけるdel、remove、popの違いについて
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
python implement mysql add delete check change サンプルコード
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] リストとタプル、それぞれを使うべきタイミングは?[重複あり]