包括重复项的两个列表的差值


有时我们需要找出两份清单之间的差异。从数学角度,这也意味着如果第二个清单中存在第一个清单中的元素,则将其移除。重复项将被保留。以下是实现此目的的方法。

我们可以使用 collections 模块中的 Counter 方法,它会跟踪元素的数量。简单的数学减法计算即可得出所需结果。在最终结果中,第一个和第二个清单中元素出现的次数将决定元素。

示例

 实时演示

from collections import Counter

# initializing lists
listA = ['Mon', 'Tue', 9, 3, 3]
listB = ['Mon', 3]

# printing original lists
print("Given ListA : ",listA)
print("Given ListB : ",listB)

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

# Result
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]

更新于: 04-May-2020

255 次浏览

开启您的事业

完成课程以获得认证

开始
广告
© . All rights reserved.