1

可能重复:
Python Slice Notation 的良好入门

我昨晚第一次遇到它是为了反转一个字符串"Hello"[::-1],但我不知道它是如何工作的。

"Hello"[::-1] # returns "olleH"
[1,2,3,4,5][::-1] # returns [5,4,3,2,1]
"Hello"[1:5:1] # returns "ello"
"Hello"[1:5:2] # returns "el"

我对“python 索引中的第三个表达式”的搜索结果为空。这个表达式是什么以及它是如何工作的。显然 ::-1 颠倒了列表,但我无法弄清楚其他正值代表什么。

4

2 回答 2

2

实际上,第三个可选参数称为stepor stride。它的默认值为1

>>> 'hello'[::] # here the value of stride is 1, means take a step of one between two indexes
'hello'   

>>> 'hello'[::2] #take a step of 2 so starting from h -->l --> o 
'hlo'

>>> 'abcdef'[::-1] #negative step actually means 'abcdef'[-1:-len('abcdef')-1:-1]
'fedcba'
于 2012-05-17T15:50:05.300 回答
0

在最后一个示例中,这些是与 step = 2 匹配的字符。

"Hello"[1:5:2] # returns "el"
  ^ ^
于 2012-05-17T15:31:51.703 回答