Python中包含重复项的两个列表的区别

有时我们需要找出两个列表之间的差异。这还将意味着数学减法,其中如果第二列表中存在元素,则将其从第一列表中删除。重复项将保留。以下是我们可以实现此目标的方法。

我们可以使用collections模块中的Counter方法,该方法将跟踪元素的计数。直接的数学减法即可得到所需的结果。在最终结果中,元素在第一列表和第二列表之间的出现次数将决定元素。

示例

from collections import Counter

#初始化列表
listA = ['Mon', 'Tue', 9, 3, 3]
listB = ['Mon', 3]

#打印原始列表
print("Given ListA : ",listA)
print("Given ListB : ",listB)

# 应用collections.Counter()
diff_list = list((Counter(listA) - Counter(listB)).elements())

# 结果
print("Result of list subtraction : ",diff_list)

输出结果

运行上面的代码给我们以下结果-

Given ListA : ['Mon', 'Tue', 9, 3, 3]
Given ListB : ['Mon', 3]
Result of list subtraction : ['Tue', 9, 3]