あなたはそのようなリストまたはあなたが に割り当てるまたは拡張スライスを削除することができます配列として可変シーケンスを持っていますが、いくつかの違い 割り当て間の延長には、存在する場合定期的なスライス。 正規スライスへの割り当ては、配列の長さを変更するために使用することができる。
>>> a = range(3) >>> a [0, 1, 2] >>> a[1:3] = [4, 5, 6] >>> a [0, 4, 5, 6]
拡張スライスは、この柔軟ではありません。拡張 スライスに割り当てる際に、文の右側のリストには、それが交換され、スライスなどの項目の 同じ数含まれている必要があります
>>> a = range(4) >>> a [0, 1, 2, 3] >>> a[::2] [0, 2] >>> a[::2] = [0, -1] >>> a [0, 1, -1, 3] >>> a[::2] = [0,1,2] Traceback (most recent call last): File "<stdin>", line 1, in ? ValueError: attempt to assign sequence of size 3 to extended slice of size 2
をなぜ「普通の私は理解していません"スライスメソッドは機能しますが、"拡張 "スライスメソッドは機能しません。 「通常の」スライスを「拡張」スライスと区別するのはなぜですか?また、「拡張された」スライスメソッドが失敗するのはなぜですか?
最初のパラグラフで説明したように、3番目のパラメータであるステップが異なります。ステートメントの右側のリストには、コピーしたテキストに必要とされているスライスと同じ数の項目(3)が置き換えられているため(2)、失敗します。だから彼らはその説明のイラストレーションとしてそれを使うのです。あなたが* "なぜ" *を意味するのかは不明です。 – jonrsharpe