Python:の違いは何ですか(1,2,3),[1,2,3]、またどんなときに使用?

StackOverflow https://stackoverflow.com/questions/1983

  •  08-06-2019
  •  | 
  •  

質問

多くの場所では、 (1,2,3) (要素からなるタプル) [1,2,3] (リスト)で使用されることがわかります.

されることがあります。一又はその他の理由は何か

役に立ちましたか?

解決

から PythonのFAQ:

リストやタプルが類似する多くの点で、一般的に用いられる根本的に異なる。タプルでされると考えられるが同様のパスカルは、Cの構造体;彼らは小さな集に関するデータを異なる種類の営しています。例えば、直交座標が適切に表すタプルはます。

リストのような配列その他の言語を学んでいます。その保有する傾向がある変数オブジェはすべて同じものとなっているの運営につ。

一般的にコンベンションな選択リストまたはタプルで購入するなど、その(不)可変性.いう要素からなるタプルのための小さな収を完全に異なるものデータをフルに吹クラスを行うことができるのではな重量、リストコレクションのベーシックプランの合理的なサイズの場合は均質設定します。

他のヒント

リスト [1,2,3] は動的かつ柔軟ながる柔軟性が高速です。

のタプル (1,2,3) 固定(変更でき)、そのためになります。

タプルは、迅速\柔軟に作成するための方法 複合 データ種類です。リストのコンテナで、リストのサポートします。

例えば、ときに使うリストアカウントをリストの学生については、クラスです。

各学生の詳細を一覧する3要素のタプルをロール番号、氏名および試験。

`[(1,'Mark',86),(2,'John',34)...]`

また、タプルは不変で使用できるキーとして生成する事ができます。

の概念がタプルの高い表現力:

  • 実際にそうした目的を達成で、素晴らしいのための梱包-開梱値x,y=coord).

  • 組み合わせ辞書(ハッシュテーブル)すことができること、のマッピングのような多数必要となる水準。例えば、マーキングが(x,y)が見つかった。

    // PHP
    if (!isset($found[$x])) {
        $found[$x] = Array();
        $found[$x][$y] = true;
    } else if (!isset($found[$x][$y])) {
        $found[$x][$y] = true;
    }
    
    # Python
    found[(x,y)] = True # parens added for clarity
    
  • リストを使用することを期待の事業そのコンテンツ(そのための各種の記載の不変性).また、pop、スプライス、スライス、検索、挿入前後に挿入などを一覧です。

  • タプルは低レベルのオブジェクト表現は、単純な比較は、業務などを抽出しのn番目の要素はnの要素を予測可能なファッションなどの座標とえばれます。

  • 最後に、リストなhashableのタイプのマッピングで辞書(ハッシュテーブルをPerl、連想配列サポートに対するコミットメント行の入ったタプル.

    こちらは簡単な例のタプル、辞書とともに、前:

    """
    couple is a tuple of two people
    doesLike is a dictionary mapping couples to True or False
    """
    couple = "john", "jane"
    doesLike = dict()
    doesLike[couple] = True
    doesLike["jane", "john"] = False # unrequited love :'(
    

[1, 2, 3] が一覧できる追加又は削除。
(1, 2, 3) は要素からなるタプルを一度に定義され、変更はできません。

これに合格する必要がありコレクションの中のアイテムを例文、ネイティブ機能がほしいと思い機能を変更しないで値を渡されたのを使っていたタプル.

Else ifたいていの機能の値を使用しています。

常にご利用の場合は外部ライブラリや合格する必要があり、値のリストへの機能やかに、完全性、データの利用要素からなるタプル.

と先ほども少し触れましたが、リストやタプルの両方を容器に格納するために使いますのpythonオブジェクト。リストの拡張とその内容が変更に譲渡による、タプルは不変です。

また、リストは使用できませんのキーとしての辞書ではタプルです。

開コンソールを実行エラーになります。してみてください:

  >>> list = [1, 2, 3]     
  >>> dir(list)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
    ce__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getit
    em__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
     '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__r
    educe__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__'
    , '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 
'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

る場合がありますので、最後の最後の行のリストは以下のいずれかの方法が'を追加','count','広','index','挿入','pop','削除','逆','並'

いくつかのタプル:

>>> tuple = (1, 2, 3)
>>> dir(tuple)
    ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
    format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
    slice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__
    lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
    , '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

のみ 'count'および'index' リストからの方法が表示されます。

このタプルは不変でな支援することはできません。ものではなく、より簡単に、迅速に社内の実装です。

  • タプルなキーが辞書で 変更できません。
  • 使用のリストがあればデータがない 必要なランダムアクセス。

を見つけることができれば解決するとのタプルを使用し、そのまま勢力の不変のようなドライブする機能性を高めます。まほとんどない後悔時間かけてゆっくり下るスロウな機能/変更できます。

[1,2,3] は、リストを作成します。

(1,2,3) はタプルは、不変です。

(1,2,3),[1,2,3]代わりに使用することができます珍しい。

So(1,2,3)はタプルで変更できません。変更をご希望の必要性を上書きのオブジェクトです。

[1,2,3]は、リスト要素を追加することができとして注目されています。

リストは以内にタプル.

(1,2,3) はタプルながら [1,2,3] は、リストを作成します。タプルは変更不能なオブジェクトがリストが可変です。

(1,2,3) はタプルと [1,2,3] は、リストを作成します。おからを表す配列番号が入ったタプルは変更不可能なので、リストに変更可能なPythonオブジェクト。

(1,2,3)-タプル [1,2,3]リスト リストは変更可能などの操作ができますがタプルは不変である延長はできません。できませんので、追加、削除、または更新から要素のタプルを一度は作成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top