Python去除列表重复元素的三种高效实现方案

Hazel
Hazel
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析Python中删除列表重复元素的三种常用方法。通过字典fromkeys利用哈希特性去重,利用set集合的无序非重复特性,以及排序后逆向扫描删除重复项。代码简洁高效,适合不同场景下的数据处理需求,帮助开发者掌握Python列表操作的进阶技巧。

Python列表去重方法概述

在网络上探索到了两种新颖的处理思路,其代码实现极为精简。这让人意识到,仅仅实现基础功能并不足以构成完整的解决方案,想要真正精通Python,仍需经历漫长的学习与实践过程。

基于fromkeys的哈希去重

第一种方法利用map类的fromkeys函数来自动过滤重复值。由于map基于哈希表实现,在处理大规模数组时,其效率理论上可能优于排序算法。

基于set集合的去重

第二种方法是使用set()函数。set用于定义集合,其核心特性是元素无序且非重复,因此可以直接用于去重。

基于排序与逆向扫描的去重

第三种方法则是先对列表进行排序,然后从后向前扫描,若发现已有元素则将其删除。


#!/usr/bin/python
#coding=utf-8
'''
Created on 2012-2-22
Q: 给定一个列表,去掉其重复的元素,并输出
'''
def distFunc1():
  a=[1,2,4,2,4,5,6,5,7,8,9,0]
  b={}
  b=b.fromkeys(a)
  print b
  #print b.keys()
  a=list(b.keys())
  print a
def distFunc2():
  a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
  a=list(set(a)) # set是非重复的,无序集合。可以用list来的排队对set进行排序,list()转换为列表,a.sort来排序
  print a
def distFunc3():
  #可以先把list重新排序,然后从list的最后开始扫描,代码如下:
  List=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
  if List:
    List.sort()
    #print List
    last = List[-1]
    #print last
    for i in range(len(List)-2, -1, -1):
      if last==List[i]: 
        del List[i]
      else: last=List[i]
if __name__ == '__main__':
  distFunc1()
  distFunc2()
  distFunc3()

请编写一段Python代码,实现删除列表中重复元素的功能。

一种可行的思路是先将列表重新排序,随后从列表末尾开始向前扫描,具体代码如下:


In [8]: List = [1, 2, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7]
In [9]: if List:
  ...:   List.sort()
  ...:   last = List[-1]
  ...:   for i in range(len(List)-2, -1, -1):
  ...:     if last==List[i]: 
  ...:       del List[i]
  ...:     else: 
  ...:       last=List[i]
  ...: print(List)

[1, 2, 3, 4, 5, 6, 7]

总结

以上即为本文的全部内容,希望这些内容对您的学习或工作具有参考价值。感谢支持,如需了解更多相关信息,请查阅下方的相关链接。

相关标签:

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

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 算法库。