python 切片字符串与列表:inclusive/noninclusive 切片索引

python slicing strings vs lists: inclusive/noninclusive slice index

假设我正在对一个列表和一个字符串进行切片:

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'

所以,当我对列表进行切片时,第一个切片索引是包含在内的,但是当我对字符串进行切片时,切片索引 非包含性的。这是什么情况?为什么字符串切片不遵循与列表切片相同的规则集?

我对列表分片的理解是,左分片索引始终包含在内,而右分片索引仅在留空时包含。

它们的行为完全相同。

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

事实是它们都是从 0 开始的。

正如@Mark 在评论中建议的那样,strings and lists 从 Python 的文档中建立索引。

但都是一样的! 在每个元素前插入索引: [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')到结尾。