【发布时间】:2016-03-28 18:38:13
【问题描述】:
在 python 中,我知道如何从列表中删除项目:
item_list = ['item', 5, 'foo', 3.14, True]
item_list.remove('item')
item_list.remove(5)
上面的代码从item_list 中删除了值5 和'item'。
但是当要删除的东西很多时,我必须写很多行:
item_list.remove("something_to_remove")
如果我知道要删除的索引,我会使用:
del item_list[x]
其中 x 是我要删除的项目的索引。
如果我知道要删除的所有数字的索引,我将使用某种循环来del 索引处的项目。
但是如果我不知道要删除的项目的索引怎么办?
我尝试了item_list.remove('item', 'foo'),但我收到一条错误消息,指出remove 只接受一个参数。
有没有办法在单个语句中从列表中删除多个项目?
附:我用过del 和remove。谁能解释一下这两者的区别,还是一样?
【问题讨论】:
-
回答您的第二个问题:
del按索引删除项目。列表的remove函数查找项目的索引,然后在该索引上调用del。 -
您的列表可以包含重复项吗?
l.remove(value)只删除第一次出现的值。考虑列表 ['a', 'b', 'a', 'c', 'b', 'a']。如果您想删除所有出现的值,使用列表推导比迭代执行del或.remove()更轻松。
标签: python list list-comprehension