如何通过切片向列表插入元素?
我被要求在一个Python程序中防止这种情况发生,但我不知道这到底怎么可能。有人能给个例子,说明如何切片一个列表并插入一些东西,让它变得更大吗?
2 个回答
-1
为了防止这种情况发生,你可以创建一个新的类,继承自Python自带的列表,然后重写一些方法。想了解更多细节,可以参考这里。
70
>>> a = [1,2,3]
>>> a[:0] = [4]
>>> a
[4, 1, 2, 3]
>>> a[1:1] = [6,7]
>>> a
[4, 6, 7, 1, 2, 3]
a[:0]
是一个列表 a
的切片,它表示从列表的开始到索引 0 之前的部分。因为在索引 0 之前没有任何元素,所以这个切片最开始是空的。如果你把它设置成一个非空的列表,那么原来的列表就会被这些元素扩展。你也可以在列表的其他地方做同样的事情,只需要指定一个宽度为零的切片(或者如果你想替换已有的元素,可以指定一个非零宽度的切片):