Python 中两个列表(包括重复项)的差异

pythonserver side programmingprogramming更新于 2025/11/23 16:44:17

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

我们可以使用 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]

相关文章


有用资源