我有两个列表,列表a和列表b。 lista有75060项,listb有62116项。 我正在尝试计算列表a中存在但列表b中不存在的项目。我做了以下事情:
list_difference = [item for item in lista if item not in listb]
len(list_difference)
list_difference的结果是2447。这个数字让我感到困惑。因为lista比listb多12944个项目,所以至少不是12944吗?
有人可以给我一些见解吗? list_difference语法有什么问题吗?
答案 0 :(得分:1)
我怀疑lista
的项目不是唯一的。
答案 1 :(得分:1)
这是由于重复造成的。 查看此示例以更好地理解它:
a=[1,1,1,1,1,1,1,1,1,1,1,1,2]
b=[1]
>>>print(len(a)-len(b))
12
k=[i for i in a if i not in b]
print(len(k))
1
如您所见,由于重复,结果为1而不是12
答案 2 :(得分:0)
这应该给您想要的答案:
x = set(lista).difference(set(listb)) #get elements in lista and not listb
final = []
for i in x:
final.extend(a.count(i)*[i,]) #get the occurrence of element in lista and not listb and add all to final list
print(len(final))