Pythonのタプルとリスト


Pythontuple and list 私たちが鋭い目をしないなら、本当におもしろいです
ドキュメントでは、いくつかの重要な細かい印刷を欠場することがあります.
私は、このページの中で、私が見るものが私が忘れるかもしれないものとして見るだけである一般的なものを含んでいません.
最初にlist
x = [1,2,3,4]
  • リストは変更可能です
  • ダイナミックです
  • 注文する
  • 要素として任意の型のオブジェクトを持ち、int要素と同じリスト内の一部のユーザ定義オブジェクト
  • リスト内の最後の要素は、負のインデックススライスでその長さを知ることなく取得できます
    last_element_x = x[-1]
    Output:4
    
    別の否定的なインデックススライスを持つ
    x = [1,2,3,4,5]
    last_element_x = x[-5:-1]
    Output:[1, 2, 3, 4]
    
    我々は、ステップでスライスすることができます
    x = [1,2,3,4,5]
    slice_in_steps_x = x[len(x):0:-2]
    Output:[6, 4, 2]
    
    それで、我々はストリングを逆にするために同じことができます
    x = [1,2,3,4,5]
    reversed_x = x[::-1]
    Output:[5, 4, 3, 2, 1]
    
    リスト内のその他のものを含めるmutability , nested lists とすべてのfunctions 私がアクセスするためにドキュメントを使うことができるリストオブジェクトと関連して
    何も新しい
    タプル
    タプルは本当に面白いです、そして、私はいくつかの重要な観察を持ちますkwargs 関数で.
    タプルには、リスト内のデータと同様のリストとの類似性があり、スライスされ、もちろんリスト内のデータのように順序付けられますリストとタプルの主な違い
    タプルは不変で、リストよりずっと速いです.アクセス時間は大きなデータで重要で、ほとんどの些細な状況ではアクセス時間は問題ではない.
    括弧の使用によって定義されたタプル
    x = (1,2,3,)
    type(x)
    Output:tuple
    
    しかし、この例を見てください
    x = (1)
    type(x)
    Output:int
    
    ここでは、型タプルを取得することを期待していますが、Pythonは単純なintとして解釈します() 他のもので
    インif だから、Pythonは() ここで使用するようなものですif(1) そして、x = (1) はほんのint .代わりに
    Xを定義する.
    x = (1,)
    type(x)
    Output:tuple
    
    ここでは、インタプリタがタプル型の変数を特定したコンマを追加しました.注意する1つのものは、このquirkが我々だけで起こるということです
    単一の項目を定義する
    タプルアンパック
    複数のアイテムを持つタプルをオブジェクトがパックされているかのように定義し、タプル内で異なる項目を別のものに割り当てます
    変数は、我々が現在面白いものに飛び込むとき、覚えておく重要な概念です.
    私の粗野な図面を無視してください
    タプルをアンパックするようにしましょうx = [1,2,3] 変数a , b , c :
    x = (1,2,3)
    type(x)
    Output:tuple
    a,b,c = x
    print(a)
    Output:1
    print(b)
    Output:2
    print(c)
    Output:3
    
    行動を解く
    ここでは、各変数にタプル内の各項目が割り当てられることがわかります.
    興味のあることは
    x = (1,2,3)
    a,b,c = x
    is same as 
    (a,b,c) = x
    
    このような状況ではPythonは() 括弧これは、我々が議論する重要な観察です
    後でセクションでのもの.
    この新しい発見された観察で、もう一つの例を見てみましょう
    x = 1,2,3,4
    type(x)
    Output:tuple
    
    そこでここではAを必要としないタプルを割り当てましたparantheses . そのことで、我々は有名な例を認識できるかもしれない
    誰もが簡単にPythonを表示するために与える.swapping elements without a temporary variable
    x1 , x2 = 1 , 2
    x1 , x2 = x2 , x1
    print(x1)
    Output: 2
    print(x2)
    Output: 1
    
    これは、括弧なしでタプルとタプルアンパックを使用したためです.知っているMIND == BLOWN!!* args
    今、私はこのブログを終える前にもう一つのことを示す必要があります.それがすべてこれに来るinfact
    挿入ドラム.
    Pythonでは、我々が望むように多くのparamenterとして入ることができる機能があることを覚えておいてくださいmax(1,2,3,4,5,6,7) 結果を得る.
    関数は、どのように多くの引数が渡されたかを知っていますか?
    我々が詳細に入る前に、我々が見る必要がある若干の例
    x = 1,2,3,4,5
    type(x)
    Output:tuple
    a,b,c = x
    Output: ValueError: too many values to unpack
    
    ここで、私はタプルXを変数A、B、Cに解凍しようとするとき、私は3つの変数しか持っていないので、私は5つの値を持っているValueErrorそのような場合、我々は以下をすることができます
    x = 1,2,3,4,5
    type(x)
    Output:tuple
    a,b,*c = x
    print(a)
    Output: 1
    print(b)
    Output: 2
    print(c)
    Output: [3,4,5]
    
    ここで私はそれを使用するときに* 変数Cでタプル要素はリストとしてCに追加されます.かなりきれい!
    これはタプルのアンパックとして知られています.
    いくつかの例を見てみましょう
    x = 1,2,3,4,5
    type(x)
    Output:tuple
    a,*b,c = x
    print(a)
    Output: 1
    print(b)
    Output: [2,3,4]
    print(c)
    Output: 5
    
    これは、インタプリタがそれらを分割することによって値を割り当てるために最善を尽くします.
    x = 1,2,3,4,5
    type(x)
    Output:tuple
    *a,*b,c = x
    Output: SyntaxError: two starred expressions in assignment
    
    ここで、インタプリタはデータを分割する方法を知りませんSyntaxErrorここで例コードを見てみましょう
    def test_function(*args):
        for x in args:
            print(x," ")
    
    test_function(1,2,3,4,5)
    Output: 1 2 3 4 5
    
    それで、ここで起こったこと.前の例と同様に、引数1 , 2 , 3 , 4 , 5は、unpackされたタプルである* argsに渡されます
    したがって、我々は通常のタプルまたはリストのようにargsを繰り返すことができます.
    この情報を使用すると、パラメータの数を変更することができます.
    これらはタプルとリストについて勉強していた興味深い観察の一部です.もし私がいくらかの間違いを犯したなら、メールを送ってください
    または私のレポにプル要求を置く.また、私の他のブログを調べてください.
    リファレンス
  • RealPython
  • PythonDocs
  • UCD Pythonプログラミングクラス