我有代表DNA序列及其互补序列的字符串,我正在搜索它们的反向回文。
切片
seq1[i:z]
效果很好,但
seq2[i:z:-1]
什么都不打印,什么都不返回。
此外,seq[i:z][::-1]
在所有情况下都能正常工作,但对于字符串切片这是正常的吗?
答案 0 :(得分:6)
如果您在可迭代中倒退(即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]
答案 1 :(得分:0)
对于palindroms,
a=input("entry something: ")
if a==a[::-1]:
print ("It is a palindrom.")
因此,如果 a的反向等于 a ,它将打印出一个回文。