Python 存在重复项时查找列表之间的差异
我需要使用python找出两个列表之间的差异。这个问题以前在堆栈溢出上被问过很多次,但没有一个提到重复(即Python 存在重复项时查找列表之间的差异,python,python-3.x,Python,Python 3.x,我需要使用python找出两个列表之间的差异。这个问题以前在堆栈溢出上被问过很多次,但没有一个提到重复(即[8]和[8,0,1,8]之间的区别是[0,1];我需要它是[0,1,8],因为每个数字在我的程序中都很重要) 我尝试过使用numpy的setdiff1d,但它无法满足上述标准 ydiff = np.setdiff1d(ydigits, jdigits) 如上所述,这只说明同一项是否在列表中,而不是它在该列表中的次数。还有其他功能可以使用吗?您可以对对象使用减法运算符: >>&
[8]
和[8,0,1,8]
之间的区别是[0,1]
;我需要它是[0,1,8]
,因为每个数字在我的程序中都很重要)
我尝试过使用numpy的setdiff1d,但它无法满足上述标准
ydiff = np.setdiff1d(ydigits, jdigits)
如上所述,这只说明同一项是否在列表中,而不是它在该列表中的次数。还有其他功能可以使用吗?您可以对对象使用减法运算符:
>>> from collections import Counter
>>> list((Counter([8, 0, 1, 8]) - Counter([8])).elements())
[8, 0, 1]
听起来你必须使用自己的算法。