首页 > 解决方案 > 在python中组合切片对象

问题描述

我想使用切片运算符提取前 3 项和后 3 项。这可以通过连接切片对象在一次调用中完成吗?

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
s1 = slice(None, 3)
s2 = slice(-3, None)
s = s1 + s2
a[s]

以上返回错误,因为s = s1 + s2不可能。还有其他方法吗?

我不是在寻找答案: a[s1] + a[s2]

标签: python

解决方案


没有s这样的a[s]对象[1, 2, 3, 7, 8, 9]。切片对象不支持连接,并且list.__getitem__不理解任何可用于将两个切片捆绑在一起的对象。

在某些时候,您将不得不切片两次并组合结果。您可以通过各种方式隐藏它,例如通过创建一个包装器来wrapper(a)[s1, s2]执行两个切片操作并组合结果,但您不能将作业委托给列表。


推荐阅读