Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python x[:-1]实际上是如何工作的?_Python_String_Slice - Fatal编程技术网

Python x[:-1]实际上是如何工作的?

Python x[:-1]实际上是如何工作的?,python,string,slice,Python,String,Slice,假设我有x='abcde'。如果我写x[:]我得到'abcde',如果我写x[::2]我得到'ace'。因此冒号之间的空格表示第一个空格是“列表的开始”,第二个空格是“列表的结束”。就好像你在写x[0:len(x)]对吗 好的,当我写x[::-1]时,我得到的列表完全相反,即'edcba'。那么,我可以替换的等价值是什么? x[len(x)-1:0:-1]不起作用,因为第二个空格不包括该数字,所以我会得到'edcb'如果我去x[len(x)-1:-1:-1]它将什么也不做,因为x[len(x)-

假设我有
x='abcde'
。如果我写
x[:]
我得到
'abcde'
,如果我写
x[::2]
我得到
'ace'
。因此冒号之间的空格表示第一个空格是“列表的开始”,第二个空格是“列表的结束”。就好像你在写
x[0:len(x)]
对吗

好的,当我写
x[::-1]
时,我得到的列表完全相反,即
'edcba'
。那么,我可以替换的等价值是什么?
x[len(x)-1:0:-1]
不起作用,因为第二个空格不包括该数字,所以我会得到
'edcb'
如果我去
x[len(x)-1:-1:-1]
它将什么也不做,因为
x[len(x)-1]==x[-1]

是的,如果我不使用冒号,它会一直起作用,我的困惑是,
x[:]
实际上在做什么,它实际上在替换什么值?因为如果它总是“列表的开始和结束”,那么它在
x[::-1]
上就不可能工作,它只会不打印任何内容,如果它知道如何反转它,那么它的值是多少,因为即使我们没有不能在正确的位置终止的问题(即不能把0放在中间空间,因为它不包括,但不能放1,因为这是列表的末尾)我们有问题,它仍然应该在0开始,即我们应该有。 是否改为aedcb

有人能解释一下幕后的魔法吗

多谢各位

(是的,我在谷歌上搜索了这个问题,试图在文档中查找,但找不到关于这个具体问题的解释)

编辑:我的问题的答案可以在的未被接受的答案中找到,即


谢谢各位

切片将包括起始索引处的元素,而不包括停止索引。由于-1的“停止”索引已具有不同的含义(用于环绕字符串末尾),因此您必须使用

>>> x[len(x)-1:None:-1]
'edcba'
它是
x[len(x)-1:-1:-1]
,但这只是列表的情况,基本上
x[::-1]
相当于
x[slice(None,None,-1)]
,这取决于
x
如何处理。特别是,`x[len(x)-1::-1]`解决了负步骤的情况