Skip to main content
 首页 » 编程设计

python之字符串的反向切片 [x :y:-1] prints blank

2025年05月04日24dyllove98

我有代表 DNA 序列及其补码的字符串,我正在搜索它们以寻找反向回文。

切片

seq1[i:z] 

效果很好,但是

seq2[i:z:-1] 

不打印也不返回任何内容。

此外,seq[i:z][::-1] 在所有情况下都可以正常工作,但这对于字符串切片来说是否正常?

请您参考如下方法:

如果你在一个可迭代对象中倒退(即 step 是负数),你需要交换 start 的顺序和 end值使得 start > end :

>>> seq = 'abcde' 
>>> seq[1:4:-1] 
'' 
>>> seq[4:1:-1] 
'edc' 

否则,您将返回一个空字符串(或空列表或空元组)。

请注意 seq[4:1:-1] 不会产生与 seq[1:4][::-1] 相同的结果然而。前者从索引 4 开始, 向后移动并在索引 1 之前停止,而后者从索引 1 开始, 向前移动,在索引 4 之前停止然后反转切片。

相反,我们有一个可迭代的 seq和整数 i < j :

seq[i:j][::-1] == seq[j-1:i-1:-1]