【发布时间】:2016-10-27 09:58:12
【问题描述】:
假设我正在切片一个列表和一个字符串:
num_list = [1, 2, 3, 4]
print(num_list[2:]) # => [3, 4]
text_string = 'This is a test string'
print(text_string[5:] # => 'is a text string'
所以,当我对列表进行切片时,第一个切片索引是包含的,但是当我对字符串进行切片时,切片索引是不包含的。这是什么情况?为什么字符串切片不遵循列表切片出现的相同规则集?
我对列表切片的理解是左切片索引总是包含的,而右切片索引只有在留空时才包含。
【问题讨论】:
-
包容/不包容是什么意思?
-
num_list[2] => 3/text_string[5] => 'i'。没有区别。 -
字符串和列表的索引相同。 Python 中的索引从零开始。
-
我不明白你在说什么。 3 是列表的索引 2,切片从那里开始;
i是字符串的索引 5,切片从那里开始。切片总是半开的;较低的索引是包含的,较高的索引是排除的。 -
不,你根本没有证明这一点。切片按照您的预期工作,您误解了您所看到的结果。索引从零开始,切片包括
start但不包括end。
标签: python arrays string list slice