在python中,我知道如何从列表中删除项
item_list=['item',5'foo',3.14,True]
项目列表。删除(“项目”)
项目列表。删除(5)
上述代码从项目列表中删除值5和“项目”。
但是当有很多东西要删除时,我必须写很多行
项目列表。删除(“要删除的内容”)
如果我知道要删除的内容的索引,我将使用:
删除项目列表[x]
其中x是我要删除的项的索引
如果我知道要删除的所有数字的索引,我将使用某种循环来删除索引处的项
但是如果我不知道我要删除的项目的索引怎么办
我尝试了item\u list.remove('item',foo'),但我得到一个错误,即remove只接受一个参数
有没有办法在一条语句中从列表中删除多个项目
另外,我使用了del和remove。有人能解释这两者之间的区别吗,还是它们是一样的
谢谢
在Python中,创建新对象通常比修改现有对象要好:
item_list=['item',5'foo',3.14,True]
项目清单=[e代表项目清单中的e,如果e不在('项目',5)]
这相当于:
item_list=['item',5'foo',3.14,True]
新列表=[]
对于项目清单中的e:
如果e不在('项目',5):
新列表。追加(e)
项目列表=新列表
如果筛选出的值列表很大(这里,('item',5)是一组小元素),使用集会更快,因为中的操作平均时间复杂度为O(1)。最好先构建要删除的iterable,这样就不会在列表的每次迭代中都创建它:
不需要的={'item',5}
item_list=[e代表item_list中的e,如果e不是多余的]
如果内存不便宜,bloom过滤器也是一个很好的解决方案