Python3列表切片与负参数

时间:2015-04-21 08:52:50

标签: list slice python-3.4

我很难理解为什么带有负索引号的python3切片方法执行以下操作: 我的列表例如是:Numbers=[1,2,3,4,5,6] 现在,如果我告诉python

>>>Numbers[::-1] 
他说:[4,3,2,1] 所以它将列表从最后一个索引增加-1(或从后面增加到第一个索引)

任何人都可以解释这个哲学以及它是如何发生的吗?

1 个答案:

答案 0 :(得分:0)

当重做完全相同的步骤时,我的输出与你的输出不同,并且表现如预期,即反转列表:

Python 3.4.2 (default, Oct  8 2014, 13:18:07) 
>>> Numbers=[1,2,3,4,5,6]
>>> Numbers[::-1] 
[6, 5, 4, 3, 2, 1]

切片语法[from:to:step]得到尊重,因为my_list[::-1]会将列表中的所有元素从start带到end,步长为-1,这意味着启动从最后。因此,它将复制列表并将其反转:

>>> id(Numbers) == id(Numbers[::-1])
False

你有可能在两次调用之间对变量做任何事情吗?