2

我有一个 python 字符串
word = helloworld word[1:9:2]
的答案
将给出为“elwr”。这是怎么回事?谢谢!!

4

4 回答 4

7

您要求解释 Python 的切片表示法。有关详细信息,请参阅此答案。特别要注意:

word = 'helloworld'
word[1:9:2]

...声明应该创建一个新切片,从索引 1 开始,直到(不包括)索引 9,字符串中每两个索引取一个元素。换句话说,创建一个包含以下元素的新字符串:

0 1 2 3 4 5 6 7 8 9
h e l l o w o r l d
  ^   ^   ^   ^  

...这就是您获得'elwr'结果的方式。

于 2013-02-11T04:15:19.440 回答
1

这意味着您正在从 position[1] 到 position[9] 获取一个子字符串,并且您只获取第二个字母。子字符串将类似于:

elloworld

并且由于您要从中获取索引 2 处的字符,因此它将是:

elwr

它也不是一个数组。它只是一个字符串。

于 2013-02-11T04:20:04.430 回答
0

数组[开始:结束:步骤]

word[1:9:2]表示您从索引 1 开始,直到索引 9,每隔一个字母取一个。

于 2013-02-11T04:15:42.890 回答
0

那就是数组切片 - word[start_pos:end_pos:step],其中start_posend_pos是零索引的,并且step是每次迭代时索引递增的值。end_pos结果中省略了at 的字符/元素。

|h|e|l|l|o|w|o|r|l|d|
0 1 2 3 4 5 6 7 8 9 10
  ^---------------^
  start           end

因为step = 2在您的示例中,我们将只取上述范围内的所有其他字符。

>>> word = "helloworld"
>>> word[1]
'e'
>>> word[1:9]
'elloworl'
>>> word[1:9:2]
'elwr'
于 2013-02-11T04:25:36.290 回答