我有两个长度不等的字符串列表,没有排序,我想检索较长列表唯一的值。我使用的真实列表包含数千个值。列表A中的值始终位于listB中。所有值仅在给定列表中找到一次。
示例:
listA = ['b0001','b0003','b0007','b0004'] listB = ['b0001','b0005','b0007','b0017','b0004','b0003','b0002','b0432']
预期结果:
listC ='b0005','b0017','b0002','b0432']
我曾尝试使用set函数和交集或枚举函数,但最终只会出错...
感谢您的帮助
答案 0 :(得分:2)
更合适的方法是使用套装。
setA = set(listA)
setB = set(listB)
listC = list(setB - setA)
这里的减号表示集合B和A之间的差异。
最好的问候
答案 1 :(得分:0)
使用列表理解:
>>> listC = [item for item in listB if item not in listA]
>>> listC
['b0005', 'b0017', 'b0002', 'b0432']