Python 字符串数组是如何工作的?

2 投票
4 回答
5162 浏览
提问于 2025-04-17 15:28

我有一个Python字符串
word = helloworld
对于
word[1:9:2] 的结果是 "elwr"。这是怎么回事呢?谢谢!!

4 个回答

0

这就是数组切片的用法 - word[start_pos:end_pos:step],其中 start_posend_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'

撰写回答