网站首页 > 基础教程 正文
方法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) 系统
- 最近发表
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)