Python列表去重的3种最常用方法

 更新时间:2026年01月08日 09:45:07   作者:爱编程的鱼  
本文介绍了Python列表去重的3种常用方法:使用dict.fromkeys()(推荐新手),保留原始顺序且代码简洁;使用set(),最简单但不保留顺序;封装成自定义函数,便于复用,文章通过具体代码示例演示了每种方法的应用,需要的朋友可以参考下

一、为什么要给列表去重?

在真实项目开发中,我们经常遇到 重复数据

  • 从 Excel 导入的用户名单有重名
  • 爬虫抓取的热门文章标题出现重复
  • 用户点击日志里同一按钮被记录了多次

如果不及时去重,不仅浪费内存,还会导致统计结果失真。今天小编就带你用 最接地气 的方式,学会 Python 列表去重。

二、方法 1:一行代码搞定(推荐新手)

核心思路

利用 字典 key 唯一 的特性,把列表元素当 key,重复值自动被过滤。

代码示例

城市列表 = ["北京", "上海", "北京", "广州", "上海"]
去重后 = list(dict.fromkeys(城市列表))
print("去重结果:", 去重后)   # 输出:['北京', '上海', '广州']

在Python3在线环境里直接复制粘贴即可运行,无需安装任何软件!

优点

  • 代码最短,适合小白
  • 保留原始顺序(Python 3.7+ 字典有序)

三、方法 2:使用 set()(适合不要求顺序的场景)

代码示例

城市列表 = ["北京", "上海", "北京", "广州", "上海"]
去重后 = list(set(城市列表))
print("去重结果:", 去重后)   # 顺序可能变化,如['上海', '北京', '广州']

注意

set() 会打乱原顺序,如果你不关心顺序,用它最省事。

四、方法 3:写个函数,复用更方便(进阶)

把方法 1 封装成函数,以后任何列表都能一键去重。

代码示例(W3Cschool 标准模板)

def 列表去重(任意列表):
    """编程狮推荐:通用去重函数"""
    return list(dict.fromkeys(任意列表))


# 测试
水果 = ["苹果", "香蕉", "苹果", "橙子"]
print(列表去重(水果))   # ['苹果', '香蕉', '橙子']

五、3 分钟实战:去除用户积分排行榜重复昵称

假设你从数据库查到如下数据:

积分榜 = ["小明", "小红", "小刚", "小明", "小红"]

跟着编程狮敲 3 行代码:

积分榜 = ["小明", "小红", "小刚", "小明", "小红"]
唯一榜单 = list(dict.fromkeys(积分榜))
print("排行榜去重后:", 唯一榜单)
# 输出:['小明', '小红', '小刚']

把结果直接回写到数据库,再也不怕重复统计啦!

六、常见疑问 FAQ

问题编程狮解答
会不会改变原列表?不会,三种方法都返回新列表,原列表安全。
字典法为什么能保留顺序?Python 3.7 起字典有序,dict.fromkeys() 会按第一次出现的顺序记录。
性能哪个最好?数据量 <10 万时三者差异不大;超大数据推荐 pandas.drop_duplicates(),我们下期再讲。

七、小结

方法是否保留顺序代码长度推荐指数
dict.fromkeys()1 行⭐⭐⭐⭐⭐
set()1 行⭐⭐⭐
自定义函数3 行⭐⭐⭐⭐

零基础同学先掌握 方法 1,工作中 90% 场景够用!

以上就是Python列表去重的3种最常用方法的详细内容,更多关于Python列表去重方法的资料请关注脚本之家其它相关文章!

相关文章

  • python 实现快速生成连续、随机字母列表

    python 实现快速生成连续、随机字母列表

    今天小编就为大家分享一篇python 实现快速生成连续、随机字母列表,具有很好的价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 使用TensorFlow-Slim进行图像分类的实现

    使用TensorFlow-Slim进行图像分类的实现

    这篇文章主要介绍了使用TensorFlow-Slim进行图像分类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python全栈之学习MySQL(2)

    Python全栈之学习MySQL(2)

    这篇文章主要为大家介绍了Python全栈之MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)

    numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)

    这篇文章主要介绍了numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 使用python获取电脑的磁盘信息方法

    使用python获取电脑的磁盘信息方法

    今天小编就为大家分享一篇使用python获取电脑的磁盘信息方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python Mysql自动备份脚本

    Python Mysql自动备份脚本

    测试系统环境 Windows 2003 python 2.5.1 mysql 5.0.1 应该只适用于Win,因为调用了CMD。 增量备份,因为自用,数据库不大。
    2008-07-07
  • python神经网络编程实现手写数字识别

    python神经网络编程实现手写数字识别

    这篇文章主要为大家详细介绍了python神经网络编程实现手写数字识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Python基于FTP模块实现ftp文件上传操作示例

    Python基于FTP模块实现ftp文件上传操作示例

    这篇文章主要介绍了Python基于FTP模块实现ftp文件上传操作,结合实例形式分析了Python引入ftp模块及相关设置、文件传输等操作技巧,需要的朋友可以参考下
    2018-04-04
  • python的setattr函数实例用法

    python的setattr函数实例用法

    在本篇文章里小编给大家整理了一篇关于python的setattr函数实例用法的相关知识点内容,有兴趣的朋友们学习下。
    2020-12-12
  • Python运行中频繁出现Restart提示的解决办法

    Python运行中频繁出现Restart提示的解决办法

    在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的 Python 程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼的小问题,而是隐藏着深层次的原因,本文将深入探讨这一现象,并提供解决方案,需要的朋友可以参考下
    2025-04-04

最新评论