首页 > 解决方案 > 从“list_a”中删除“list_b”中存在的所有值

问题描述

我是 Python 和编码的新手,我正在迎接挑战。我正在尝试从“list_a”中删除“list_b”中存在的所有值。通过函数传递的输入必须是列表,它们不能是任何其他数据类型。

例如,[1,2,2,2,3], [2] 应该返回 [1, 3]。

我的尝试如下,但它返回 [1, 2, 3] 这是错误的。我被困住了,希望能得到一些帮助,帮助我以正确的方式做到这一点。

def changeup(list_a, list_b):
    for i in list_b:
        for k in list_a:
            if k == i:
                list_a.remove(k)

    return list_a

changeup([1,2,2,2,3],[2])

#This is returning [1, 2, 3].  It should be returning [1, 3].  Not sure why?

标签: pythonlist

解决方案


尝试这个:

list_a = list(set([item for item in list_a if item not in list_b]))

如果要保留重复值。

list_a = [item for item in list_a if item not in list_b]

遍历一个列表以查看该项目是否在另一个列表中


推荐阅读