python切割字符串与列表:包含/非包含切片索引

时间:2016-06-24 17:38:46

标签: python arrays string list slice

假设我正在切换列表和字符串:

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'

因此,当我对列表进行切片时,第一个切片索引是包含在内的,但是当我切割字符串时,切片索引非包含的。这是什么感觉?为什么字符串切片不遵循列表切片出现的相同规则集?

我对列表切片的理解是左切片索引总是包含在内,而右切片索引只有在留空时才包含在内。

2 个答案:

答案 0 :(得分:3)

它们的行为完全相同。

出于某种原因,您希望列表的索引从0和
开始  字符串的索引从1开始。

事实是他们都从0开始。

正如@Mark在评论中建议的那样,stringslists来自Python的文档索引。

答案 1 :(得分:0)

但它是一样的! 在每个元素之前插入索引: [0=1,1=2,2=3,3=4][2:]表示:从索引2到结束 [0=T,1=h,2=i,3=s,4= ,5=i,6=s,...][5:]表示:从索引5(在这种情况下从字母'i')到结束。