【发布时间】:2014-03-04 06:21:36
【问题描述】:
我有点像 python/编程新手,我只是在玩字符串切片。因此,string[::-1] 的简单字符串反转方法工作得很好,正如我们所知,但在我的代码中还有其他实例会产生意想不到的结果:
In [1]: string = "Howdy doody"
In [2]: string[::]
Out[2]: 'Howdy doody'
In [3]: string[::-1]
Out[3]: 'ydood ydwoH'
In [4]: string[0:]
Out[4]: 'Howdy doody'
In [5]: string[0::-1]
Out[5]: 'H' # what up with this?
In [6]: string[:len(string)]
Out[6]: 'Howdy doody'
In [7]: string[:len(string):-1]
Out[7]: '' # what up with this too?
In [8]: string[0:len(string)]
Out[8]: 'Howdy doody'
In [9]: string[0:len(string):-1]
Out[9]: '' # And what up here too.
我已经评论了上面我希望字符串被反转的行,但我很惊讶为什么他们不简单地反转字符串。有谁知道这是怎么回事?
【问题讨论】:
-
对于
string[0::-1],这是因为您告诉 Python 从索引 0 开始并向后移动。当然,它不会反转字符串。你应该做string[len(string)-1::-1](或者令人惊讶的是string[len(string)::-1])来让字符串反转,就像mhlester在他的回答中所说的那样。 -
这是一个我会接受两个答案的例子,但我只能选择一个!
标签: python string reverse slice