Python中的索引和切片
我刚开始学习编程,我需要一些澄清 为了Python中的索引和切片,python,Python,我刚开始学习编程,我需要一些澄清 为了 输出为空字符串。我不太明白的是为什么print(s[:2:-1])有一个fed输出,而print(s[0:2:-1])没有。例如,替换0和2 print(s[2:0:-1])如果将第三个参数设置为负值,则iterable的元素将按相反顺序遍历。然后让第一个参数为空意味着迭代应该从最右边的元素开始。想想这样一个事实,s[::-1]=“fedcba”print(s[:2:-1])与print(s[0:2:-1])-它与print(s[None:2:-1])是一
输出为空字符串。我不太明白的是为什么
print(s[:2:-1])
有一个fed输出,而print(s[0:2:-1])
没有。例如,替换0和2
print(s[2:0:-1])如果将第三个参数设置为负值,则iterable的元素将按相反顺序遍历。然后让第一个参数为空意味着迭代应该从最右边的元素开始。想想这样一个事实,
s[::-1]=“fedcba”
print(s[:2:-1])
与print(s[0:2:-1])
-它与print(s[None:2:-1])
是一样的。当您省略一个切片参数或使用None
时,将替换端点。如果步长为负,则起点为序列的终点,终点为序列的起点print(s[0:2:-1])
从s[0]
到s[2]
,但它不能,因为2>0
并且无法从0倒数到2print(s[:2:-1])
从s[-1]
到s[2]
,因为s[-1]
是字符串的最后一个字符。我将解释索引中这三个数字的含义
s = "abcdef"
在这个字符串中,如果从左计数,索引从0
开始;如果从右计数,索引从-1
开始。这意味着,如果从左开始计数,a
索引为0
,f
索引为5
,如果从右开始计数,f
索引为-1
,a
索引为-6
因此
如果希望索引具有常量分隔,那么可以在开始和结束后再引入一个数字,如下所示
>>> s[0:5:2]
'ace'
这意味着,您正在从头到尾读取每个2
nd索引。此外,当你写作时
>>> s[::-1]
'fedcba'
你指的是每一个-1
th索引,这基本上意味着,是的!你猜对了:),颠倒顺序
我认为这个答案连同这个帖子中的其他答案应该会给你一个好主意
关于字符串切片的语法很简单:
x[start:end:step]
其中切片从start
开始,在end
之前结束,通过步骤进行迭代
s[0:2:-1]
返回[]
,因为无法从索引0向后切片到索引2。这毫无意义s[2:0:-1]
(返回'cb'
)更有意义
s[:2:-1]
返回“fed”
。省略开始
和步骤
为-1意味着从序列末尾到索引2的一个片段反向(因为步骤
为-1)。另外:
s[0:2:-1]
s[:2:-1]