Python集合学习笔记

news2025/1/13 13:37:11

'''
列表、字典、集合都是可变类型的序列.
集合是没有value的字典
'''
s = {2, 3, 4, 5, 5, 5, 5, 6, 7, 7}
print(s)  # {2, 3, 4, 5, 6, 7} 集合中没有相同的元素,元素不能重复

print('===================')
s1 = set(range(6))
print(s1)  # {0, 1, 2, 3, 4, 5}
lis = [2, 5, 8, 5, 8, 4, 9]
s2 = set(lis)
print(s2, type(s2))  # {2, 4, 5, 8, 9} <class 'set'>

s3 = set((11, 2, 3, 4, 51, 51, 61, 61, 71, 71, 56))  # 通过元组转
print(s3, type(s3))  # {2, 3, 4, 71, 11, 51, 56, 61}  <class 'set'> 集合中的元素是无序的,无重复元素
s4 = set('ppppythoooonnn')
print(s4, type(s4))  # {'t', 'y', 'o', 'p', 'h', 'n'} <class 'set'>

s5 = set({0, 11, 21, 3, 3, 3, 3, 4, 4, 4, 4, 5})
print(s5, type(s5))  # {0, 3, 4, 5, 21, 11} <class 'set'>

s6 = {}
print(type(s6))#<class 'dict'>
s7 = set()
print(type(s7))#<class 'set'>

输出:

{2, 3, 4, 5, 6, 7}
===================
{0, 1, 2, 3, 4, 5}
{2, 4, 5, 8, 9} <class 'set'>
{2, 3, 4, 71, 11, 51, 56, 61} <class 'set'>
{'o', 'p', 'n', 't', 'h', 'y'} <class 'set'>
{0, 3, 4, 5, 21, 11} <class 'set'>
<class 'dict'>
<class 'set'>


print('====in  not in=======')
s2 = {10, 20, 30, 40, 405}
print(10 in s2)
print(100 in s2)
print(100 not in s2)

print('====集合元素的添加操作=======')
s2.add(88)
print(s2, len(s2))
s2.update({200, 400, 300})  # 一次添加多个元素
print(s2, len(s2))
s2.update([210, 410, 310])
print(s2, len(s2))
s2.update((220, 440, 330))
print(s2, len(s2))

print('====集合元素的删除操作=======')
s2.remove(400)
print(s2, len(s2))
# s2.remove(500)# remove没有的集合元素,会报错 KeyError: 500
s2.discard(500)  # discard 有500 就从集合中删除,没有就不操作
print(s2, len(s2))


print('====集合元素删除=======')
#s2.pop(200)#不能添加参数 TypeError: pop() takes no arguments (1 given)
print(s2, len(s2))
s2.pop()  # 删除任意一个元素
print(s2, len(s2))
s2.clear()
print(s2, len(s2))

输出:
====in  not in=======
True
False
True
====集合元素的添加操作=======
{40, 10, 20, 405, 88, 30} 6
{40, 200, 10, 300, 400, 20, 405, 88, 30} 9
{40, 200, 10, 300, 400, 210, 20, 405, 310, 88, 410, 30} 12
{440, 40, 200, 10, 330, 300, 400, 210, 20, 405, 310, 88, 410, 220, 30} 15
====集合元素的删除操作=======
{440, 40, 200, 10, 330, 300, 210, 20, 405, 310, 88, 410, 220, 30} 14
{440, 40, 200, 10, 330, 300, 210, 20, 405, 310, 88, 410, 220, 30} 14
====集合元素删除=======
{440, 40, 200, 10, 330, 300, 210, 20, 405, 310, 88, 410, 220, 30} 14
{40, 200, 10, 330, 300, 210, 20, 405, 310, 88, 410, 220, 30} 13
set() 0

Process finished with exit code 0


print('====集合的运算 集合是否相等=======')
s1={10,20,30,40}
s2={20,30,40,10}
print(s1==s2)#True  集合中元素是无序的,元素相同就相等
print(s1!=s2)#False

print('====集合的运算 集合是否子集=======')
s1={10,20,30,40,50,60}
s2={20,30,40,10}
s3={20,30,40,9}
print(s2.issubset(s1))#True
print(s3.issubset(s1))#False

print('====集合的运算 集合超集=======')
print(s1.issuperset(s2))
print(s1.issuperset(s3))
print('====集合的运算 集合交集=======')
print(s2.isdisjoint(s1))#False 有交集为False
s4={11,22,33,44}
print(s2.isdisjoint(s4))#True 没有交集为True

输出:

====集合的运算 集合是否相等=======
True
False
====集合的运算 集合是否子集=======
True
False
====集合的运算 集合超集=======
True
False
====集合的运算 集合交集=======
False
True

Process finished with exit code 0

print('====集合的运算 2个集合的交集操作=======')
s1 = {10, 20, 30, 40, 50, 60}
s2 = {20, 30, 40, 10, 11}
print(s1.intersection(s2))  # {40, 10, 20, 30}
print(s1 & s2)  # 求交集 intersection(s2)与&是等价的
print('---------')
print(s1)
print(s2)
print('====集合的运算 2个集合的并集操作=======')
print(s1.union(s2))  # {40, 10, 11, 50, 20, 60, 30}
print(s1 | s2)  # 并集操作
print('---------')
print(s1)#{40, 10, 50, 20, 60, 30}
print(s2)#{40, 10, 11, 20, 30}
print('====集合的运算 2个集合的差集操作=======')
print(s1.difference(s2))#{50, 60}
print(s2 - s1 )#{11}
print('---------')
print(s1)
print(s2)

print('====集合的运算 2个集合的对称差集=======')
s1 = {10, 20, 30, 40, 50, 60}
s2 = {20, 30, 40, 10, 11}
print(s1.symmetric_difference(s2))#{50, 11, 60}

结果:

====集合的运算 2个集合的交集操作=======
{40, 10, 20, 30}
{40, 10, 20, 30}
---------
{40, 10, 50, 20, 60, 30}
{40, 10, 11, 20, 30}
====集合的运算 2个集合的并集操作=======
{40, 10, 11, 50, 20, 60, 30}
{40, 10, 11, 50, 20, 60, 30}
---------
{40, 10, 50, 20, 60, 30}
{40, 10, 11, 20, 30}
====集合的运算 2个集合的差集操作=======
{50, 60}
{11}
---------
{40, 10, 50, 20, 60, 30}
{40, 10, 11, 20, 30}
====集合的运算 2个集合的对称差集=======
{50, 11, 60}

 

print('================集合生成式+++++++++++++++++++')
print('列表生成式')
lst =[ i*i for i in range(6)]
print(lst)#[0, 1, 4, 9, 16, 25]

print('集合生成式')
st ={ i*i for i in range(10)}#{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
print(st)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搜索与图论(acwing算法基础)

文章目录 DFS排列数字n皇后 BFS走迷宫 拓扑序列单链表树与图的深度优先搜索模拟队列有向图的拓扑序列 bellman-ford有边数限制的最短路 spfaspfa求最短路spfa判断负环 FloydFloyd求最短路 PrimPrim算法求最小生成树 KruskalKruskal算法求最小生成树 染色法判定二分图染色法判定…

rabbitmq记录(服务器重启后,RabbitMQ用户丢失)

1.docker运行rabbitmq docker run -d --hostname my-rabbit --name myrabbit -p 15672:15672 -p 5672:5672 rabbitmq 2.进入rabbitmq容器 docker exec -it 3776394dd2b3 /bin/bash 3.开启rabbitmq可视化界面管理 rabbitmq-plugins enable rabbitmq_management 4.添加新用户…

RabbitMq-高级

参考&#xff1a;https://blog.csdn.net/dingd1234/article/details/125032383 1 TTL TTL QUEUE 声明args TTL MESSAGE postmessage中设置 区别&#xff1a;过期消息会直接删除消息&#xff0c;过期队列若配置死信队列会移到死信队列 ps&#xff1a;同时配置两个已小的为准 2…

2. Redis持久化、主从哨兵架构详解

分布式缓存技术Redis 1. Redis持久化1.1 RDB快照(snapshot)1.1.1 bgsave的写时复制(COW)机制 本文是按照自己的理解进行笔记总结&#xff0c;如有不正确的地方&#xff0c;还望大佬多多指点纠正&#xff0c;勿喷。 课程内容&#xff1a; 1、RDB、AOF及混合持久化详解 2、并行…

css基础一:说说你对CSS盒子模型的理解?

一、是什么 当对一个文档进行布局&#xff08;layout&#xff09;的时候&#xff0c;浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型&#xff08;CSS basic box model&#xff09;&#xff0c;将所有元素表示为一个个矩形的盒子&#xff08;box&#xff09; 一个盒子由四…

认识HttpServletRequest和HttpServletResponse

hi,大家好,上一期我们认识了HttpServlet,这一期我们来认识一下HttpServletRequest和HttpServletResponse &#x1f680;HttpServletRequest &#x1f49a;1.核心方法介绍 &#x1f49a;2.代码举例展示 &#x1f680;HttpServletResponse &#x1f49a;1.核心方法展示 &a…

STC12读取内部ID方法介绍

STC12读取内部ID方法介绍 &#x1f516;这里以STC12LE5A60S2为例&#xff0c;从STC12手册的第一章&#xff0c;1.10小结可以找到相关的ID相关的信息。这个信息主要是用于程序加密或产品销售管理等方面。&#x1f33f;STC12LE5A60S2系统板&#xff1a; https://oshwhub.com/pers…

javaScript蓝桥杯----阅读吧

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 “读万卷书&#xff0c;行万里路”&#xff0c;无论你现在贫穷或富有&#xff0c;身和心一定要有一个在路上。那么&#xff0c;在快节奏的今天&#xff0c;人们是如何利用碎片化的时间去阅读的呢&#xff1f;没错&…

【MySQL高级篇笔记-事务基础知识(中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库事务概述 1、存储引擎支持情况 2、基本概念 3、事务的ACID特性 1.原子性&#xff08;atomicity&#xff09; 2.一致性&#xff08;consistency&#xff09; 3.隔离型&#xff08;isolation&#xff09; 4.持久性&a…

卷积编码和维特比译码

文章目录 卷积编码维特比译码 卷积编码 卷积码是一种非分组码&#xff0c;通常适用于前向纠错。在分组码中&#xff0c;编码器产生的 n 个码元的一个码组&#xff0c;完全决定于这段时间中 k 比特输入信息。这个码组中的监督位仅监督本码组中 k 个信息位。卷积码在编码时虽然也…

Calico介绍

Calico 是一个基于 BGP 的纯三层的网络方案&#xff0c;与 OpenStack 、Kubernetes 、AWS 、GCE 等云平台都能够良好地集成 。 Calico 在每个计算节点都利用 Linux Kernel 实现了一个高效的 vRouter 来负责数据转发 。每个 vRouter 都通过 BGP 协议把在本节点上运行的容器的路由…

msf渗透练习-php后门反弹

说明&#xff1a; 本章内容&#xff0c;仅供学习&#xff0c;不要用于非法用途&#xff08;做个好白帽&#xff09; &#xff08;一&#xff09;后门反弹是什么 后门反弹是指攻击者在成功入侵一台计算机后&#xff0c;在目标计算机上安装一个“后门程序”&#xff0c;将该程序…

内网安全:横向传递攻击(SMB || WMI 明文或 hash 传递)

内网安全&#xff1a;横向传递攻击. 横向移动就是在拿下对方一台主机后&#xff0c;以拿下的那台主机作为跳板&#xff0c;对内网的其他主机再进行后面渗透&#xff0c;利用既有的资源尝试获取更多的凭据、更高的权限&#xff0c;一步一步拿下更多的主机&#xff0c;进而达到控…

解决语言障碍:如何将Axure变为中文版?

Axure 是一款备受称赞的原型设计工具&#xff0c;被誉为 "交互神器"。然而&#xff0c;在国内&#xff0c;一些设计师对于使用 Axure 有所犹豫&#xff0c;其中语言环境不适应是主要的顾虑之一。在本文中&#xff0c;我们将探讨一种更适合国内设计师的 Axure 中文版即…

网工内推 | 国企专场,补贴福利多,CCNP认证以上优先

01 凯盛数智信息技术科技&#xff08;上海&#xff09;有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师&#xff08;IT工程师&#xff09; &#x1f537;职责描述&#xff1a; 1、负责公司数据中心机房、服务器及网络设备的管理和维护工作&#xff1b; 2、负责公司基础…

微信小程序实用工具——渐变色按钮(二)

今日推荐&#x1f481;‍♂️ 今年的国美毕业展已经开始了&#x1f9d1;‍&#x1f3a8;&#x1f9d1;‍&#x1f3a8;在杭州的小伙伴可以快速出击了&#x1f3c3;‍♂️&#x1f3c3;‍♂️ 这里我想推荐其中的一副版画作品《突围》 在众多版画系作品中被它所吸引 文章目录 今…

【linux离线升级gcc版本---gcc4.8.5-->gcc12.2.0】

【linux离线升级gcc版本---gcc4.8.5--&#xff1e;gcc12.2.0】 &#x1f53b; 一、gcc简介&#x1f53b; 二、gcc下载上传&#x1f53b; 三、查看和安装gcc-12.2.0需要的依赖3.1 &#x1f341; 查看gcc-12.2.0所需依赖库3.2 &#x1f341; 安装gmp、mpfr、mpc、isl &#x1f53…

DJ4-8 抖动与工作集

目录 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 2、CPU 利用率急剧下降的原因 3、抖动 4、工作集模型 5、抖动的预防 4.9 请求分段存储管理方式 4.9.1 请求分段中的硬件支持 4.9.2 分段的共享与保护 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 有…

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日&#xff0c;坪山区城市更新和土地整备局发布&#xff0c;关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道&#xff0c;南邻南坪快速路&#xff0c;北邻比亚迪路&#xff0c;东西两…

一种新型智能优化算法—鼠群优化(RSO)算法

目录 一、RSO理论基础 二、RSO数学模型 2.1 追逐猎物 2.2 攻击猎物 三、RSO流程图 四、运行结果 鼠群优化(Rat Swarm Optimizer&#xff0c;RSO)算法是由Dhiman G等人于2020年提出&#xff0c;主要启发于老鼠追逐和攻击猎物的种群行为。该优化算法具有结构简单&#xf…