如何从列表中删除项目与另一个列表listb相比较

时间:2016-03-10 19:18:35

标签: python

我有两个Lista和Listb列表,我试图通过删除Listb中存在的所有元素来更新Lista,我该怎么做?

Lista = ['1535408', '1527610', '1532634']
Listb = ['1527610', '1532634']

EXPECTED OUTPUT:-
 Lista = ['1535408']

2 个答案:

答案 0 :(得分:1)

Listb的元素创建一个集合(对于O(1)查找时间)。使用列表推导和重新分配来进行过滤。

>>> Lista = ['1535408', '1527610', '1532634']
>>> Listb = ['1527610', '1532634']
>>> b_items = set(Listb)
>>> Lista = [item for item in Lista if item not in b_items]
>>> Lista
['1535408']

答案 1 :(得分:1)

使用列表推导

>>> Lista = ['1535408', '1527610', '1532634']
>>> Listb = ['1527610', '1532634']
>>> Lista = [item for item in Lista if item not in Listb]
['1535408']

如果您不想保留重复元素,那么:

>>> set(Lista).difference(Listb)
{'1535408'}