网站首页 > 基础教程 正文
方法1:直接使用集合去重(无序)
n = [3, 5, 2, 5, 3, 7]
unique_list = list(set(n))
print(unique_list) # 输出可能为 [2, 3, 5, 7](集合无序)
特点:
- 最简单直接,但不保留原始顺序。
方法2:利用字典键去重(Python 3.7+ 保留顺序)
n = [3, 5, 2, 5, 3, 7]
unique_list = list(dict.fromkeys(n))
print(unique_list) # 输出 [3, 5, 2, 7](保留首次出现的顺序)
特点:
- 利用字典键的唯一性,保留元素首次出现的顺序。
方法3:列表推导式去重(保留顺序)
n = [3, 5, 2, 5, 3, 7]
unique_list = []
[unique_list.append(x) for x in n if x not in unique_list]
print(unique_list) # 输出 [3, 5, 2, 7]
特点:
- 显式检查元素是否已存在,保留顺序但效率较低(适合小型列表)。
方法4:使用sorted排序去重(有序但不保留原始顺序)
n = [3, 5, 2, 5, 3, 7]
unique_sorted = sorted(set(n), key=n.index)
print(unique_sorted) # 输出 [3, 5, 2, 7](按原始顺序排序)
特点:
- 先转集合去重,再按原始索引排序恢复顺序。
方法对比
方法 | 保留顺序 | 时间复杂度 | 适用场景 |
set() | O(n) | 快速去重,无需顺序 | |
dict.fromkeys() | O(n) | 需保留顺序(Python 3.7+) | |
列表推导式 | O(n^2) | 小型列表 | |
sorted(set(), key=) | O(n log n) | 需排序且保留首次出现 |
最终建议
- 需要保留顺序 → 用 dict.fromkeys(n)
- 无需顺序且追求高效 → 直接 set()
- 旧版本Python或兼容性要求 → 列表推导式或循环检查
猜你喜欢
- 2025-04-05 教你如何用几行python代码编写出一个简易web服务器
- 2025-04-05 EXCEL条件求和的技术全盘点,共6种,你会几种?
- 2025-04-05 分享一些Python 中短小精悍的“骚操作”
- 2025-04-05 ScalersTalk成长会Python小组第7周学习笔记
- 2025-04-05 python处理Excel实战进阶篇day16(乱序不定人数工资表格汇总)
- 2025-04-05 python零基础不要错过,python字典的所有类型
- 2025-04-05 实用主义 Python 一行命令走天涯(python如何一行行运行代码)
- 2025-04-05 Python 基础教程五之Python3 字典
- 2025-04-05 Python字典:你以为自己真的懂?揭秘高效数据存储的黑科技!
- 2025-04-05 使用 FAISS 和开源 LLM 构建检索增强生成 (RAG) 系统
- 06-18单例模式谁都会,破坏单例模式听说过吗?
- 06-18Objective-c单例模式的正确写法「藏」
- 06-18单例模式介绍(单例模式都有哪些)
- 06-18前端设计-单例模式在实战中的应用技巧
- 06-18PHP之单例模式(php单例模式连接数据库)
- 06-18设计模式:单例模式及C及C++实现示例
- 06-18python的单例模式(单例 python)
- 06-18你认为最简单的单例模式,东西还挺多
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)