繁体   English   中英

删除列表中的元素

[英]Removing element in a list

list = [0, 1, 2, 8, 2, 9, 2]

有没有办法一次删除元素2

所以你会得到:

list = [0, 1, 2, 8, 9, 2]

我尝试使用index()但我没有找到它。

它可以是 RANDOM 2

所以我不能使用remove()pop()因为它不会删除随机位置上的数字2

这有效

list.remove(2)

L.remove(value) -- 删除第一次出现的值。

如果值不存在,则引发 ValueError。

使用delpop

例如,

del list[2]

或者

list.pop(2)

del 和 pop 的区别在于

del过载。

例如 del a[1:3] 表示删除元素 1 和 3

随机删除出现的2

笔记:

  • 我们创建一个数字2的索引列表,即[i for i, j in enumerate(lst) if j == 2]
  • 使用随机模块选择方法从索引列表中随机获取一个索引
  • 列出pop 方法或删除方法取决于您的选择

代码:

import random
lst = [0, 1, 2, 8, 2, 9, 2]
lst.pop(random.choice([i for i, j in enumerate(lst) if j == 2]))
print lst

输出:

[0, 1, 8, 2, 9, 2]

请注意,您正在隐藏内置list 除了该index工作正常:

>>> li = [0, 1, 2, 8, 2, 9, 2]
>>> li.pop(li.index(2))
2
>>> li
[0, 1, 8, 2, 9, 2]

暂无
暂无

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

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