Pythonスライスとスライス割り当て



Python Slices Slice Assignment



スライスとスライス割り当ての違い

  • スライススライス
  • スライスの割り当てスライスの割り当て
a = [1, 2, 3] b = a[:] # Slice a[1:] = [] # Slice assignments

スライス[:]右側、スライスの割り当て[:]左側

スライスは、元のシーケンスに影響を与えることなく、浅いコピーです
は、元のシーケンスに対するスライス割り当て操作であり、スライス領域シーケンスを変更します。
新しい割り当てのシーケンスへのスライス割り当ては、反復スライスタイプの一部である必要があります



a = [1, 2, 3] a[1:2] = 3 # TypeError: can only assign an iterable # Int type of the object is not iterable.

シーケンス

シーケンス(結果)
-インデックスシーケンスに基づいて取得されたオブジェクトであるPythonのデータ構造。
-クラス構築シーケンス:
-リスト
-タプル
-文字列(文字列、Unicode)
-バッファ
-メソッドの一般的な構造を持つクラスシーケンスを使用できます:in, len (), max (), min (), +, *, index (), sliced

スライス

参照:
スライスとテクニックythonシーケンス



  • スライスデータ構造を持つターゲットシーケンスの場合
  • 浅いコピーはスライスです
  • consequence[start_index:end_index:step]
    • 左閉右開
    • start_index:最初の値を取る
    • end_index:最初に取得した値よりも小さい
    • step:デフォルトは1、できません0正であり、左から右への値は右から左への負の値
# Values ​​from right to left a = [1, 2, 3, 1] b = a[3:0:-1] print(b) # [1, 3, 2]
  • シーケンス シングルインデックス インデックス範囲の値が次の場合:-len () to len () - 1それ以外の場合は、IndexErrorをスローします。
print(a[len(a)]) # IndexError: list index out of range
  • スライスシーケンス、インデックス範囲は制限されません-len () to len () - between 1、インデックス値が指定を超えると-len () to len () - 1自動的にインデックスの値を超えますデフォルト値(最初の要素と最後の要素)に設定されます)
a = [1, 2, 3, 4] print(a[-100: 100]) # [1, 2, 3, 4]

スライスの割り当て

スライスの割り当ては、元のシーケンスに対して動作し、スライス領域のシーケンスを変更することです。

a = [1, 2, 3, 4] a[1:3] = (30,) print(a) # [1, 30, 4], assigning a new element, two original is cut away.

新しい割り当てのシーケンスへのスライス割り当ては、反復スライスタイプの一部である必要があります

a = [1, 2, 3] a[1:2] = 3 # TypeError: can only assign an iterable # Int type of the object is not iterable.