【问题标题】:slicing to reverse string confusion [duplicate]切片以扭转字符串混淆[重复]
【发布时间】:2012-04-16 13:40:29
【问题描述】:

这个问题已经问过很多次了,但我不想再问了。我只想知道如何 发生这种情况了吗?

>>> st="arindam"

>>> st[::-1]   #This is the one that everyone probably uses 
'madnira' 

有人能解释一下为什么会这样吗?

>>> st[-1::-1]
'madnira'

这如何也成功地反转了字符串?我以为这将从'a'开始 并打印'adnira'

【问题讨论】:

  • 索引 -1 是字符串的最后一个字符,所以...

标签: python


【解决方案1】:

在 Python 列表索引中,索引-1 指的是字符串中的最后一个 字符。使用负步长索引时,省略开始索引使用-1 作为开始(正步长索引默认从0 开始)。

【讨论】:

  • 啊…………这说明了……谢谢先生
  • 我认为这会使start:end:step 的行为就像range(start,end,step)
【解决方案2】:

因为 st[-1] 是 'm':

>>> st="arindam"
>>> st[-1]
'm'
>>> st[::-1]
'madnira'
>>> st[-1::-1]
'madnira'
>>> st[-2::-1]
'adnira'

【讨论】:

  • >>> st[-1:0:-1] 'madnir' 但是>>> st[-1::-1] 'madnira' 这是怎么发生的?
  • 0 和 None(在 '::' 之间隐含)表现不同。
猜你喜欢
  • 2016-11-20
  • 2013-12-22
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 2012-02-10
  • 1970-01-01
相关资源
最近更新 更多