0

0

Python集合set常见用法_set去重与运算技巧

冷炫風刃

冷炫風刃

发布时间:2026-03-08 19:01:59

|

839人浏览过

|

来源于php中文网

原创

python集合set常见用法_set去重与运算技巧

如果您需要对Python中的数据进行去重处理或执行数学意义上的集合运算,set类型提供了简洁高效的内置支持。以下是set在去重与集合运算中的常用操作方式:

一、使用set实现列表去重并保持原始顺序

直接调用set()会丢失原有顺序,但可通过结合dict.fromkeys()或循环遍历实现去重且保序。该方法利用字典键的唯一性与插入顺序保留特性(Python 3.7+)。

1、定义原始列表:numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]

2、使用dict.fromkeys()去重保序:unique_list = list(dict.fromkeys(numbers))

立即学习Python免费学习笔记(深入)”;

3、打印结果:print(unique_list) → 输出[3, 1, 4, 5, 9, 2, 6]

二、使用set构造器直接去重(不保证顺序)

此方式最简捷,适用于仅需唯一元素、无需关注顺序的场景。set内部基于哈希表实现,平均时间复杂度为O(1)。

1、创建含重复元素的列表:data = ['a', 'b', 'a', 'c', 'b']

2、转换为set:s = set(data)

3、转回列表(顺序不确定):result = list(s)

4、输出示例值可能为:['c', 'a', 'b'] 或其他排列

三、集合交集运算(& 或 intersection())

交集返回同时存在于两个集合中的元素,适用于查找共通项,如共同好友、公共标签等。

1、定义集合A:set_a = {1, 2, 3, 4}

2、定义集合B:set_b = {3, 4, 5, 6}

3、使用符号运算求交集:common = set_a & set_b

4、或调用方法:common = set_a.intersection(set_b)

5、结果为:{3, 4}

四、集合并集运算(| 或 union())

并集合并两个集合的所有唯一元素,自动剔除重复项,常用于数据汇总或范围扩展。

1、定义集合X:set_x = {'apple', 'banana'}

2、定义集合Y:set_y = {'banana', 'cherry', 'date'}

3、使用符号运算求并集:all_fruits = set_x | set_y

4、或调用方法:all_fruits = set_x.union(set_y)

5、结果为:{'apple', 'banana', 'cherry', 'date'}

五、集合差集运算(- 或 difference())

差集返回属于左集合但不属于右集合的元素,可用于识别独有项,例如用户A有而用户B没有的权限。

科大讯飞-AI虚拟主播
科大讯飞-AI虚拟主播

科大讯飞推出的移动互联网智能交互平台,为开发者免费提供:涵盖语音能力增强型SDK,一站式人机智能语音交互解决方案,专业全面的移动应用分析;

下载

1、定义集合M:set_m = {10, 20, 30, 40}

2、定义集合N:set_n = {30, 40, 50, 60}

3、使用符号运算求M对N的差集:only_in_m = set_m - set_n

4、或调用方法:only_in_m = set_m.difference(set_n)

5、结果为:{10, 20}

六、集合对称差集运算(^ 或 symmetric_difference())

对称差集返回仅存在于其中一个集合、不同时存在于两个集合的元素,等价于 (A-B) ∪ (B-A)。

1、定义集合P:set_p = {1, 2, 3}

2、定义集合Q:set_q = {2, 3, 4}

3、使用符号运算求对称差集:diff = set_p ^ set_q

4、或调用方法:diff = set_p.symmetric_difference(set_q)

5、结果为:{1, 4}

七、判断子集与超集关系(issubset() / issuperset())

子集判定用于验证一个集合是否完全包含于另一个集合中,常见于权限校验或条件过滤。

1、定义集合S:subset = {5, 6}

2、定义集合L:larger = {4, 5, 6, 7, 8}

3、检查subset是否为larger的子集:is_sub = subset.issubset(larger)

4、检查larger是否为subset的超集:is_super = larger.issuperset(subset)

5、两者均返回:True

八、添加与移除元素(add() / remove() / discard())

动态修改集合内容时,add()添加单个元素;remove()在元素不存在时报错;discard()则静默忽略不存在的情况。

1、初始化空集合:my_set = set()

2、添加元素:my_set.add('hello')

3、安全移除元素(无异常):my_set.discard('world')

4、强制移除(若不存在则触发KeyError):my_set.remove('hello')

5、最终集合状态为:set()

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

18

2026.02.03

c语言union的用法
c语言union的用法

c语言union的用法是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型,union的使用可以帮助我们节省内存空间,并且可以方便地在不同的数据类型之间进行转换。使用union时需要注意对应的成员是有效的,并且只能同时访问一个成员。本专题为大家提供union相关的文章、下载、课程内容,供大家免费下载体验。

129

2023.09.27

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

58

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

146

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

273

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

93

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

159

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

30

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号