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
スライス
- スライスデータ構造を持つターゲットシーケンスの場合
- 浅いコピーはスライスです
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.