python切片列表

时间:2013-07-29 15:22:27

标签: python list

>>> 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]中第二个值的用途是什么?

3 个答案:

答案 0 :(得分:3)

他们没有给出相同的价值。在第一个元素中,元素被99, 88, 77替换,而在第二个元素中,列表被增加以容纳s, t, u

this问题中解释了Python的Slice表示法。

ex[1:4]=[99,88,77]用内容ex替换99, 88, 77的切片。同时,ex[1:1]=['s', 't', 'u']会将s, t, u插入列表中。

答案 1 :(得分: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]

答案 2 :(得分:1)

lst[start:end] = some_seq表示将从start开始并以end - 1结尾的切片替换为RHS上的序列。

lst[n:n] = sequence表示在列表中的索引n处的RHS上插入序列。

我想说的不一样。