Python列表的奇怪行为

时间:2015-10-28 23:31:37

标签: python list

为什么这个代码在Python解释器运行时不会抛出错误。

a = ['A', 'B', 'C']
a[20:] = ['D', 'E']
print a

输出为['A', 'B', 'C', 'D', 'E']。我认为Python会在第二个语句中给出错误,因为a只有3个元素。编码时此功能是否有任何自然用途?

1 个答案:

答案 0 :(得分:4)

这就是python的工作方式。在用于切片的python中,不会进行边界检查。它只是扩展了你的列表,因为它是一个可变对象。

当你用切片读出边界时,它也很有趣:

f = a[20:]

f将是一个空列表。