那么用网上一个比较两个list差集的方法可行吗?
print list(set(aa).difference(set(bb)))
结果是不行,因为bb和aa的差正好都是重复的元素,而set(aa)的转换已经去除了重复元素,所以得到aa和bb的差值是[]。可见这种方法只能用于比较两个列表中有不同元素的情况。最简单的方法其实是引入Counter包:
from collections import Counter
然后Counter(aa),即可得到一个显示出所有元素重复次数的dict:Counter({2: 3, 1: 1, 3: 1, 4: 1})
出现频度最高的元素会默认在前面,也可用dict()操作符将其转换为一个普通的dict来进行额外处理。比如采用列表解析表达式来处理:
print [ str(k)+':'+str(v) for k,v in dict(Counter({2: 3, 1: 1, 3: 1, 4: 1})).items() if v>1]
将显示出仅含重复项的列表:[‘2:3’]
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/549.html