如何找出列表A中不在列表B内的出现频率最高元素?
解决方案
问题分析
我们需要从列表A中筛选出不在列表B中的元素,再找出其中出现频率最高的元素。
简洁实现(Python)
借助标准库collections.Counter可高效完成频率统计,结合生成器表达式过滤元素,代码简洁直观:
from collections import Counter A = [2, 3, 3, 4, 5, 6, 5, 7, 4, 5, 7, 9, 12, 12, 23, 3, 5, 6, 7, 10, 3, 4, 5, 6, 5, 20, 21, 22, 22] B = [2, 4, 5, 22] most_frequent = Counter(x for x in A if x not in B).most_common(1)[0][0] print(most_frequent) # 输出: 3
代码解释
x for x in A if x not in B:生成器表达式,遍历列表A并排除存在于B中的元素。Counter(...):统计过滤后元素的出现频率。.most_common(1):返回频率最高的1个元素及其次数,格式为[(元素, 次数)]。[0][0]:从结果元组中提取目标元素。
结果
最终得到的出现频率最高的元素是3,它在A中出现了5次且不在B列表内。
内容的提问来源于stack exchange,提问作者Rebel
相关产品推荐
相关产品推荐

