0

我有 2 个长度不等、未排序的字符串列表,我想检索较长列表中唯一的值。我使用的真实列表包含数千个值。listA 中的值总是在 listB 中找到。所有值只能在给定列表中找到一次。

例子 :

listA = ['b0001', 'b0003', 'b0007', 'b0004'] listB = ['b0001', 'b0005', 'b0007', 'b0017', 'b0004', 'b0003', 'b0002', 'b0432']

预期结果 :

listC = 'b0005', 'b0017', 'b0002', 'b0432']

我尝试使用 set 函数和交集或 enumerate 函数,但最终得到错误...

谢谢你的帮助

4

2 回答 2

2

一个更合适的方法是使用集合。

setA = set(listA)
setB = set(listB)
listC = list(setB - setA)

这里的减号表示集合 B 和 A 之间的差异。

此致

于 2013-07-30T21:08:05.743 回答
0

使用列表理解:

>>> listC = [item for item in listB if item not in listA]
>>> listC
['b0005', 'b0017', 'b0002', 'b0432']
于 2013-02-07T12:39:09.803 回答