-2
>>> ex=[1,2,3,4,5,6,7,8]
>>> ex
[1, 2, 3, 4, 5, 6, 7, 8]
>>> ex[1:4]=[99,88,77]
>>> ex
[1, 99, 88, 77, 5, 6, 7, 8]
>>> ex[1:1]=['s','t','u']
>>> ex
[1, 's', 't', 'u', 99, 88, 77, 5, 6, 7, 8]

ex[1:4] と ex[1:1] が同じ出力を返すのはなぜですか? ex[1:1] の 2 番目の値の使用は何ですか?

4

3 に答える 3

3

それらは同じ値を与えません。最初の要素では、要素が に置き換えられ99, 88, 77ますが、2 番目の要素では、リストが に対応するように増加されs, t, uます。

Python のスライス表記については、この質問で説明されています。

ex[1:4]=[99,88,77]のスライスをexコンテンツに置き換えます99, 88, 77。一方、リストにex[1:1]=['s', 't', 'u']挿入s, t, uします。

于 2013-07-29T15:24:46.543 に答える
2

ex[1:1] を実行すると、インデックス 1 を置き換えるのではなく、インデックス 1 の前から「挿入」を開始します。

ex = [1,2,3,4,5,6,7]
ex[1:1] = 3
print ex

収量:

[1,3,2,3,4,5,6,7]
于 2013-07-29T15:25:34.197 に答える
1

lst[start:end] = some_seqstartで始まり、で終わるスライスend - 1を RHS のシーケンスに置き換えることを意味します。

lst[n:n] = sequenceリストのインデックスnで RHS にシーケンスを挿入することを意味します。

本当に同じではありません。

于 2013-07-29T15:27:29.600 に答える