python列表删除指定索引元素_如何按索引从列表中删除元素?

就像其他人提到的,POP和del是这个删除给定索引项的有效方法。然而,仅仅是为了完成(因为相同的事情可以通过Python的许多方式来完成):

使用切片(这并不能从原始列表中删除项目):

(在使用Python列表时,这也是效率最低的方法,但在处理不支持POP的用户定义对象时,这可能是有用的(但不是有效的,我重申),但确实定义了__getitem__ ):>>> a = [1, 2, 3, 4, 5, 6]>>> index = 3 # Only positive index>>> a = a[:index] + a[index+1 :]# a is now [1, 2, 3, 5, 6]

注:请注意,此方法不会修改列表,如下所示pop和del..相反,它生成两个列表副本(一个从一开始到索引,但没有它)(a[:index])和索引后面的一个,直到最后一个元素(a[index+1:])并通过添加这两种方法创建一个新的List对象。然后将其重新分配到List变量(a)。因此,旧的List对象被取消引用,并因此被垃圾收集(前提是原始List对象不被除a之外的任何变量引用)。

这使得这种方法效率很低,也可能产生不良的副作用(特别是当其他变量指向未修改的原始列表对象时)。

感谢@MarkDickinson指出了这一点.。

这,这个堆栈溢出答案解释了切片的概念。

还请注意,这仅适用于正指数。

在与对象一起使用时,__getitem__方法必须已定义,更重要的是,__add__方法必须已定义为返回包含两个操作数中的项的对象。

本质上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值