【问题标题】:reverse slice of string [x:y:-1] prints blank字符串 [x:y:-1] 的反向切片打印空白
【发布时间】:2014-12-28 21:38:29
【问题描述】:

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

切片

seq1[i:z]

效果很好,但是

seq2[i:z:-1]

什么都不打印,也不返回任何内容。

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

【问题讨论】:

  • 实际问题是什么?你需要什么?
  • 向我们展示seq1seq2iz的值

标签: python string slice


【解决方案1】:

如果您在可迭代对象中后退(即step 为负数),则需要交换startend 值的顺序,以便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]

【讨论】:

    【解决方案2】:

    对于回文,

    a=input("entry something: ")
    if a==a[::-1]:
        print ("It is a palindrom.")
    

    所以如果 a's 反向等于 a,它将打印它的回文。

    【讨论】:

      猜你喜欢
      • 2021-07-30
      • 2022-06-18
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多