您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

仅需一条语句即可从Python列表中删除多个项目

仅需一条语句即可从Python列表中删除多个项目

在Python中,创建新对象通常比修改现有对象要好:

item_list = ['item', 5, 'foo', 3.14, True]
item_list = [e for e in item_list if e not in ('item', 5)]

等效于:

item_list = ['item', 5, 'foo', 3.14, True]
new_list = []
for e in item_list:
    if e not in ('item', 5):
        new_list.append(e)
item_list = new_list

如果过滤出的值列表很大(这里('item', 5)是一小组元素),则使用aset会更快,因为该in操作的平均时间复杂度为O(1)。最好先构建要删除的可迭代对象,这样就不必在列表理解的每次迭代中都创建它:

unwanted = {'item', 5}
item_list = [e for e in item_list if e not in unwanted]

一个布隆过滤器也是一个不错的解决方案,如果内存是不便宜。

python 2022/1/1 18:37:41 有222人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶