【问题标题】:Python String Slicing: What is the semantic logic of the expression s[-1:-len(s)-1:-1] with arbitrary string s?Python字符串切片:带有任意字符串s的表达式s[-1:-len(s)-1:-1]的语义逻辑是什么?
【发布时间】:2020-09-13 04:46:49
【问题描述】:

对于任意字符串s,s[::-1]反转字符串,等价于s[-1:-len(s)-1:-1]

例如:s = "abc"s[::-1]s[-1:-len(s)-1:-1] 产生 "cba"

我想知道是否有人可以解释后一个表达式-len(s)-1 的停止位置。除了提供整数值和冒号作为默认值s[len(s)] 之外,我在 Python 文档中没有发现任何详细说明字符串切片停止位置语法的内容。

【问题讨论】:

  • 我猜有人只是不知道切片的中间部分可以留空以获得相同的结果。

标签: python string slice


【解决方案1】:

负索引本质上是根据模算术原理运行的。

它们环绕到列表的末尾。所以s[-1]是字符串的最后一个字符,s[-2]是字符串的倒数第二个字符,...一直到s[-len(s)]是字符串的第一个字符。

因为我们想要包含第一个字符并且切片不包含“上限”边界,所以我们使用-len(s)-1 作为反转的停止点。也就是说,切片从-1 开始,每次递增一个-1,其中包含的最后一个索引是-len(s),它对应于字符串的第一个字符。

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2020-03-19
    • 2015-08-30
    • 2021-05-27
    • 2022-04-08
    • 1970-01-01
    • 2013-04-30
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多