为什么这个代码在Python解释器运行时不会抛出错误。
a = ['A', 'B', 'C']
a[20:] = ['D', 'E']
print a
输出为['A', 'B', 'C', 'D', 'E']
。我认为Python会在第二个语句中给出错误,因为a
只有3个元素。编码时此功能是否有任何自然用途?
答案 0 :(得分:4)
这就是python的工作方式。在用于切片的python中,不会进行边界检查。它只是扩展了你的列表,因为它是一个可变对象。
当你用切片读出边界时,它也很有趣:
f = a[20:]
f
将是一个空列表。