Python如何在迭代时从列表中删除项目?

发布于 2021-02-02 23:25:01

Python如何在迭代时从列表中删除项目?

关注者
0
被浏览
438
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你可以使用列表推导来创建一个仅包含你不想删除的元素的新列表:

    somelist = [x for x in somelist if not determine(x)]
    

    或者,通过分配给slice somelist[:],你可以将现有列表突变为仅包含所需的项目:

    somelist[:] = [x for x in somelist if not determine(x)]
    

    如果还有其他引用somelist需要反映更改,则此方法可能很有用。

    除了理解之外,你还可以使用itertools。在Python 2中:

    from itertools import ifilterfalse
    somelist[:] = ifilterfalse(determine, somelist)
    

    或在Python 3中:

    from itertools import filterfalse
    somelist[:] = filterfalse(determine, somelist)
    


面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看