繁体   English   中英

是否有像Perl在Python中拼接的内置函数?

[英]Is there a built-in function like Perl's splice in Python?

我试图找到一种方法来查找/替换列表中的元素,而不是使用迭代,就像在perl中有一个函数splice()。

@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]

切片分配涵盖了Perl splice()函数支持的所有相同用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM