Python 字符串数组是如何工作的?
我有一个Python字符串
word = helloworld
对于
word[1:9:2] 的结果是 "elwr"。这是怎么回事呢?谢谢!!
4 个回答
0
这就是数组切片的用法 - word[start_pos:end_pos:step]
,其中 start_pos
和 end_pos
是从零开始计数的,而 step
是每次循环时索引增加的值。结果中不会包括 end_pos
位置的字符或元素。
|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'
1
这句话的意思是,你从位置[1]到位置[9]中提取了一部分字符串,而在这部分中你只取了第二个字母。提取的部分字符串可能是这样的:
elloworld
而你从中取出的字符是索引为2的那个字母,所以结果是:
elwr
另外,这个不是数组,它只是一个字符串。
7
你在问关于Python中的切片表示法。可以查看这个回答来获取更多细节。特别要注意的是:
word = 'helloworld'
word[1:9:2]
... 这段话的意思是要创建一个新的切片,从索引1开始,到索引9(不包括9),每隔两个索引取一个元素。换句话说,就是从原字符串中提取出以下这些元素:
0 1 2 3 4 5 6 7 8 9
h e l l o w o r l d
^ ^ ^ ^
... 这样你就得到了结果'elwr'
。