【发布时间】:2014-11-10 23:43:51
【问题描述】:
在查看一些python字符串和函数时,我发现了python这个奇怪的怪癖:
s = "hello"
print s[::-1]
然后打印:olleh
但是,print s[len(s)-1:-1:-1] 不起作用。我的理解是它应该从最后一个元素s[len(s)-1] 迭代到第一个元素s[0]。但是,它只打印一个空字符串'',我相信这是因为在给定长度的字符串中(比如5),s[4] == s[-1]。但是,我不明白为什么python决定使用-1而不是4,这是实际的len(s)。
此外,s[len(s):0:-1] + s[0] 有效。为什么len(s) 是有效索引? python是不是随便把len(s)转为0?
附:这是在 Python 2.7.8 中,我不确定它是否也适用于 3.x.x
编辑:确认在 Python 3 中是相同的
【问题讨论】:
标签: python string slice string-length