我有一个 python 字符串
word = helloworld word[1:9:2]
的答案
将给出为“elwr”。这是怎么回事?谢谢!!
问问题
4981 次
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_pos
和end_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 回答