Python列表切片超出范围

8

虽然这段代码会引发IndexError错误:

In [1]: lst = [1, 2, 3]
In [2]: lst[3]
IndexError: list index out of range

使用“超出范围的索引”对列表进行切片不会产生任何错误。

In [3]: lst[3:]
Out[3]: []

这个设计的理念是什么?

2个回答

14

当你访问列表中索引超出其长度时,我们无法返回任何内容。(没有办法表示不存在的元素)。这就是为什么会抛出错误的原因。但是,当你进行切片操作时,你正在制作原始列表的一个被切割复制品,如果起始或结束位置不合法,则新列表可以为空。


0

能够测试元素是否存在真是太好了:

if sys.argv[2:]:
    # do something with sys.argv[2], knowing it exists

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接