如何基于其他列表从python中的列表中删除项目

如何基于其他列表从python中的列表中删除项目,python,django,Python,Django,我有 列表1=[var1,var2,var3,var4,var5] 及其他 列表2=[var4,var2] 现在我想减去它们,这样最终的结果是 list1 = [var1,var3,var5] Assumin列表中没有重复的项 list(set(list1)-set(list2)) 您可以在集合中转换列表并获得它们之间的差异 list1 = [1,2,3,4] list2 = [1, 3] list1 = set(list1) list2 = set(list2) list1.differe

我有

列表1=[var1,var2,var3,var4,var5]

及其他

列表2=[var4,var2]

现在我想减去它们,这样最终的结果是

list1 = [var1,var3,var5]

Assumin列表中没有重复的项

list(set(list1)-set(list2))

您可以在集合中转换列表并获得它们之间的差异

list1 = [1,2,3,4]
list2 = [1, 3]
list1 = set(list1)
list2 = set(list2)
list1.difference(list2)
OUTPUT: set([2, 4])

以这种方式使用列表理解:

l1 = [var1,var2,var3,var4,var5]
l2 = [var4, var2]

diff = [x for x in l1 if x not in l2]

您可以添加l2=setl2来加速x,而不是在l2查找中。是的,当然-我知道,但有时它并不那么重要-所以我只是尝试为OP提供一个选项