如何通过切片向列表插入元素?

39 投票
2 回答
21678 浏览
提问于 2025-04-15 23:24

我被要求在一个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 之前没有任何元素,所以这个切片最开始是空的。如果你把它设置成一个非空的列表,那么原来的列表就会被这些元素扩展。你也可以在列表的其他地方做同样的事情,只需要指定一个宽度为零的切片(或者如果你想替换已有的元素,可以指定一个非零宽度的切片):

撰写回答