为什么somelist [len(somelist)]生成一个IndexError而不是somelist [len(somelist):]?

Ale*_*cek 8 python list colon slice

我知道somelist[len(somelist)]无法访问定义列表之外的索引 - 这是有道理的.

但是为什么Python允许你这么做somelist[len(somelist):]呢?

我甚至读过这somelist[len(somelist):] = [1]相当于somelist.append(1)

但为什么切片符号会改变索引"len(somelist)"仍在列表范围之外的事实?

Mak*_*oto 4

这是文档中的一些内容。对于任何可迭代对象的切片都有特定的规则;特别值得注意的是#4,我的重点是:

sfromi到的切片被定义为索引使得的j项目序列。如果或大于,则使用 。如果省略 或,则使用. 如果省略 或,则使用 . 如果大于或等于,则切片为空。ki <= k < jijlen(s)len(s)iNone0jNonelen(s)ij