我很难理解为什么带有负索引号的python3切片方法执行以下操作:
我的列表例如是:Numbers=[1,2,3,4,5,6]
现在,如果我告诉python
>>>Numbers[::-1]
他说:[4,3,2,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
你有可能在两次调用之间对变量做任何事情吗?