Python3查找列表中重复元素个数的3种方法详解

清欢
清欢
发布时间:2026-10-11| 2人浏览过
原创

本文详细解析在Python3中查找列表重复元素个数的三种常用方法。通过手动遍历统计、利用collections.Counter工具以及字典推导式,分别展示了基础逻辑与高效实现。文章包含具体代码示例,帮助开发者根据实际需求选择最合适的方案,提升数据处理效率。

方法一:利用集合去重后遍历统计

这是最直观且无需导入额外模块的方法。核心思路是先通过 set() 将列表转换为集合,从而去除重复项。随后遍历这个唯一的元素集合,对每个元素使用列表的 count() 方法统计其在原列表中出现的次数。

mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
myset = set(mylist)
for item in myset:
  print("the %d has found %d" %(item,mylist.count(item)))

该方法的输出结果如下:

  • the 1 has found 1
  • the 2 has found 4
  • the 3 has found 3
  • the 4 has found 4

这种方式逻辑清晰,适合初学者理解列表计数的基本原理。但需要注意的是,count() 方法在每次调用时都会遍历整个列表,因此当列表数据量较大时,时间复杂度会较高(O(N^2)),性能不如后续两种方法。

方法二:使用 collections.Counter 统计

Python 标准库中的 collections 模块提供了专门用于计数的工具 Counter。这是处理此类问题最简洁且高效的方式。

from collections import Counter
Counter([1,2,2,2,2,3,3,3,4,4,4,4])

执行上述代码后,返回的结果为:

Counter({2: 4, 4: 4, 3: 3, 1: 1})

Counter 对象本质上是一个字典的子类,键为元素,值为计数。它内部使用哈希表实现,遍历列表一次即可完成统计,时间复杂度为 O(N),在处理大规模数据时性能优势明显。

方法三:利用字典手动构建统计

如果不希望导入模块,也可以手动使用字典来记录每个元素的出现次数。这种方法需要遍历原列表,判断元素是否已存在于字典中,若存在则计数加一,若不存在则初始化为1。此外,示例代码中还包含了一个过滤逻辑,仅保留出现次数大于1的元素。

List=[1,2,2,2,2,3,3,3,4,4,4,4]
a = {}
for i in List:
  if List.count(i)>1:
    a[i] = List.count(i)

此方法虽然实现了功能,但同样存在与方法一相同的性能问题,即在循环内部重复调用 count() 导致效率低下。在实际生产环境中,建议优先使用方法二(Counter)以获得最佳性能。

以上就是Python3查找列表中重复元素个数的3种方法详解的详细内容,更多关于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 算法库。