python - 反转字符串 Python 切片表示法

标签 python python-2.7 slice

string = "HELLO"
print string[::-1] #as expected
print string[0:6:-1] #empty string why ?

我惊讶地发现在 python 中反转字符串是多么容易,但后来我偶然发现了这一点并迷路了。有人可以解释为什么第二个反向不起作用吗?

最佳答案

第二个字符串为空的原因是因为您告诉编译器每次都从 0 开始,在 6 结束,步进 -1 个字符。

由于编译器永远不会通过重复将 -1 加到 0(变为 0、-1、-2、-3、...)得到大于 6 的数字,因此编译器被编程为返回一个空字符串。

尝试 string[6::-1],这会起作用,因为重复将 -1 加到 6 将得到 -1(超过字符串末尾)。

注意:这个答案主要是对@dmcdougall、@Ben_Love 和@Sundeep 的评论的汇编,并带有更多解释

关于python - 反转字符串 Python 切片表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40253256/

相关文章:

python - 打印格式?哪个python更好

python numpy优化n维投影

python - lempel-ziv压缩算法实现

python - Python 中的 DataFrame 切片失败

python - 将数组切片为阶梯式连续 block 的 Python 方式是什么?

python - 不能在 pydantic init 函数中定义变量

python - NOT NULL 约束失败错误

python - 无法在 virtualenv 中安装 mySQL-python

mongodb - Golang MongoDB在列表上使用$ in运算符-结果参数必须是 slice 地址

go - 反射-获取单 slice 元素的类型