发布时间:2026/8/6 10:35:07
python中的集合(set)给列表去重 使用集合set给列表去重的核心原理是利用集合的“元素唯一性”特性自动过滤重复项。但需注意直接转集合会丢失原始顺序若需保留顺序应结合字典dict.fromkeys()或辅助集合实现。以下是具体方法一、基础去重方法1. 直接转集合不保序最快原理集合天然不允许重复元素将列表转为集合会自动去重。代码示例nums unique list(set(nums)) print(unique) # 输出顺序随机**不保证原顺序**适用场景无需保留原始顺序时如统计唯一值、去重后直接排序等。性能时间复杂度O(n)是所有方法中最快的。2. 保序去重推荐方法(1) 使用dict.fromkeys()Python 3.7原理Python 3.7 的字典默认保持插入顺序用列表元素作键可同时去重并保序。代码示例nums unique list(dict.fromkeys(nums)) print(unique) # 输出**保留首次出现顺序**优势代码简洁、性能高O(n)是官方推荐的保序去重方案。(2) 辅助集合 循环通用兼容原理遍历原列表用集合记录已出现元素仅添加新元素到结果列表。代码示例nums seen set() unique [x for x in nums if x not in seen and not seen.add(x)] print(unique) # 输出适用场景需兼容旧版 Python3.7或需自定义去重逻辑时。二、关键注意事项1.元素必须可哈希集合要求元素是可哈希的不可变对象如数字、字符串、元组。不可直接处理列表/字典等可变对象需先转为可哈希类型# 错误示例列表不可哈希 # data [, , ] # list(set(data)) # 报错TypeError: unhashable type: list # 正确做法转为元组 data [, , ] unique [list(t) for t in set(tuple(x) for x in data)] print(unique) # 输出[, ]自定义对象需实现__hash__和__eq__方法。2. 顺序问题set()去重不保留顺序不同 Python 版本/运行环境结果顺序可能不同。保序方法的选择优先用dict.fromkeys()Python 3.7。旧版本可用collections.OrderedDictfrom collections import OrderedDict unique list(OrderedDict.fromkeys(nums))3. 性能对比方法是否保序时间复杂度适用场景list(set(lst))❌O(n)无需顺序速度最快list(dict.fromkeys(lst))✅O(n)需保序的常规场景循环 辅助集合✅O(n)需自定义逻辑或兼容旧版本列表推导式if x not in✅O(n²)小数据量避免用于大数据集大数据量时O(n²) 方法如列表推导式性能显著劣于 O(n) 方法。三、复杂场景处理1. 按对象属性去重场景列表元素为字典/对象需根据特定字段去重。解决方案用字段值作为唯一标识结合辅助集合data [{id: 1, name: A}, {id: 1, name: B}, {id: 2, name: C}] seen set() unique [x for x in data if x[id] not in seen and not seen.add(x[id])] print(unique) # 输出[{id: 1, name: A}, {id: 2, name: C}]2. 大数据量去重内存优化流式处理避免一次性加载全部数据。def stream_deduplicate(iterable): seen set() for item in iterable: if item not in seen: seen.add(item) yield item # 用法unique list(stream_deduplicate(large_data_stream))总结无需保序直接用list(set(original_list))速度最快。需要保序优先用list(dict.fromkeys(original_list))Python 3.7简洁高效。元素不可哈希先转换为可哈希类型如元组再用集合去重。性能关键点避免在循环中使用if x not in listO(n²)必须用集合辅助判断O(1)。以上方法均不修改原列表而是返回新列表。若需原地去重需结合切片赋值original_list[:] list(dict.fromkeys(original_list))。

相关新闻

2026/8/6 10:35:07

RimSort终极指南:5分钟掌握环世界MOD管理的完整教程

RimSort终极指南:5分钟掌握环世界MOD管理的完整教程 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-manage…

2026/8/6 10:35:07

从零构建自主循环AI Agent系统:核心组件、实战代码与工程化部署

1. 先搞清楚“会自己找活”的Agent Loop到底解决了什么 别再手动一条条给AI下指令了。如果你还在为每个任务单独写Prompt、等结果、再根据结果写下一个Prompt,那说明你的工作流还停留在“手动挡”阶段。一个能“自己找活”的Agent Loop系统,核心解决的就…

2026/8/6 10:35:07

AI应用生产环境安全防护实战:从网络隔离到输出审查的完整指南

这次我们来看一个在生产环境中保护 AI 智能体、MCP 服务器与 LLM 应用的安全实践。这不仅仅是理论探讨,而是直接关系到你的模型服务能否稳定、安全地对外提供能力。无论是自研的智能体、基于 Model Context Protocol (MCP) 构建的服务器,还是各类大语言模…

2026/8/6 11:40:11

职场沟通进阶:从对齐、赋能到闭环,高效协作必备术语解析

1. 从“赋能”到“抓手”:为什么我们需要重新审视职场词汇 最近在茶水间,听到两个实习生讨论项目进度,一个说“我们得对齐一下颗粒度”,另一个接话“对,然后要找到抓手,形成闭环”。我端着咖啡杯愣了三秒&a…

2026/8/6 11:35:11

瑞德克斯平台:从信息透明度反看长期一致性的视角

对新手与注重稳健体验的外汇内容读者而言,“能看懂”往往比“堆概念”更重要。围绕瑞德克斯平台,以下重点写清解释是否通俗、规则是否易查、提示是否前置,以及服务是否具备连续性。外汇相关平台的价值,体现在长期一致性与信息呈现…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/6 0:04:22

电力系统调度中的源荷不确定性建模与优化实践

1. 电力系统调度中的源荷不确定性挑战现代电力系统正面临前所未有的复杂性,其中源荷不确定性(Source-Load Uncertainty)已成为调度决策中最棘手的难题之一。我在参与某省级电网调度系统升级时,曾遇到风电预测误差导致日内调度计划…

2026/8/6 0:04:22

VGG-T3技术解析:3D重建速度的革命性突破

1. 项目概述:VGG-T3如何重新定义3D重建速度在计算机视觉领域,3D场景重建一直是个计算密集型任务。传统方法重建1000帧图像规模的场景往往需要数小时甚至更长时间,而英伟达最新发布的VGG-T3技术将这个时间压缩到了惊人的54秒。这个突破性进展来…

2026/8/6 0:04:22

深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

在这个数字化浪潮席卷全球的今天,我们似乎已经忘记了,曾经有一段时间,人们想要去一个陌生的地方,只能靠在书桌前翻阅厚厚的旅游杂志,或者向刚从那里回来的朋友询问那些模糊不清的印象。那时候,“远方”是一个需要精打细算才能抵达的奢侈概念。而现在,只需要一部手机,轻…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/5 19:21:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…