如何从列表中分割中间元素 [英] How to slice middle element from list

查看:45
本文介绍了如何从列表中分割中间元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

相当简单的问题。假设我有如下列表:

a = [3, 4, 54, 8, 96, 2]

我是否可以使用切片来省略列表中间的元素,以生成类似以下内容的内容?

a[some_slicing]
[3, 4, 8, 96, 2]

是省略了元素54。我早就猜到这会奏效:

a[:2:]

但结果与我预期的不同:

[3, 4]

推荐答案

不能用单个切片模拟POP,因为一个切片只提供单个开始和结束索引。

但是,您可以使用两个切片:

>>> a = [3, 4, 54, 8, 96, 2]
>>> a[:2] + a[3:]
[3, 4, 8, 96, 2]

您可以将其封装到一个函数中:

>>> def cutout(seq, idx):
        """
        Remove element at `idx` from `seq`.
        TODO: error checks.
        """
        return seq[:idx] + seq[idx + 1:]

>>> cutout([3, 4, 54, 8, 96, 2], 2)
[3, 4, 8, 96, 2]
但是,pop将是faster。列表弹出函数在listobject.c中定义。

这篇关于如何从列表中分割中间元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆