我正在寻找一种方法来查找/替换列表中的元素,而不是像perl中使用迭代。
@a = splice(@list,2,3,(1,1,1));
print @a;
在Python中,我们需要通过循环查找和替换。这看起来有点耗时。那么是否有像Perl中一样的替换方法呢?
somelist[2:5] = [1, 1, 1]
这个方法会将列表中的第2、3和4个元素替换成新列表。新列表可以为空或长度不同。同时,也可以通过将赋值切片设为长度为0来将右侧序列插入目标列表。
示例:
>>> a = [1, 2, 3]
>>> a[1:1] = [4, 5, 6]
>>> a
[1, 4, 5, 6, 2, 3]
>>> b = ['foo', 'bar', 'baz', 'spam', 'ham', 'eggs']
>>> b[2:5] = [1, 1, 1]
>>> b
['foo', 'bar', 1, 1, 1, 'eggs']
>>> c = [42, 38, 22]
>>> c[:2] = []
>>> c
[22]
splice()
函数相同的用例。
somelist[1:1] = iterable
将在somelist[1]
后插入,somelist[2]
之前。 - Martijn Pieters[]
来引用两个索引之间的位置。 - Hubro