Python 利用 Counter 查找列表奇偶异常项

山海之间
山海之间
发布时间:2026-10-14| 5人浏览过
原创

本文介绍如何使用 Python 的 collections.Counter 模块查找列表中的奇偶异常项。通过列表推导式结合取余操作提取各项奇偶性,并利用 Counter 的 most_common() 方法确定多数奇偶性,从而筛选出与大多数项奇偶性质不同的元素。该方法简洁高效,适用于数据清洗和异常检测场景。

本段代码片段源自 30-seconds-of-python 项目。

1. find_parity_outliers


from collections import Counter

def find_parity_outliers(nums):
  return [
    x for x in nums
    if x % 2 != Counter([n % 2 for n in nums]).most_common()[0][0]
  ]

# EXAMPLES
find_parity_outliers([1, 2, 3, 4, 6]) # [1, 3]


find_parity_outliers 函数接收一个列表作为输入,并返回其中属于奇偶异常项的元素。所谓奇偶异常项,是指其奇偶性与列表中大多数元素的奇偶性不一致的项。该函数利用列表推导式逐一检查输入列表中的每个元素,判断其是否为奇偶异常项。在 Counter 中,通过列表推导式结合取余操作(% 2)提取输入列表中每一项的奇偶性质。随后,使用 collections.Counter.most_common() 获取列表中出现频率最高的奇偶性。

2. class collections.Counter([iterable-or-mapping])

Counter 是 dict 的一个子类,专门用于统计可哈希对象的数量。它作为一个集合,元素像字典的键(key)一样存储,而它们的计数值则作为键的值存储。这些计数值可以是任意整数,包括 0 和负数。most_common([n]) 是 Counter 提供的一个方法,该方法

返回一个列表,其中包含出现频率最高的 n 个元素及其对应的计数值,并按频率从高到低排序。如果省略 n 参数或将其设为 None,most_common() 将返回计数器中的所有元素。当计数值相等时,元素按照首次出现的顺序进行排序。


>>> from collections import Counter
>>> Counter('abracadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]


[0][0] 用于在结果列表中定位元素,即提取出出现频率最高的那个元素本身。


>>> Counter('abracadabra').most_common(3)[0][0]
'a'

至此,关于 Python 代码实现查找列表中奇偶异常项的介绍已结束。如需了解更多相关 Python 查找列表奇偶异常项的内容,请搜索本站历史文章或继续浏览后续相关文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。