当前位置: 首页 > news >正文

python中的集合详解

目录

一.思考

二.集合

基本语法

 集合的常用操作——修改

1.添加新元素

 2.移除元素

 3.从集合中随机取出元素

 4.清空集合

5. 消除两个集合的差集

 6.两个集合的合并

注意:集合的遍历

三.集合总结


 

一.思考

 为什么使用集合?

我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景。为何又需要学习新的集合类型呢?

通过特性来分析:

  • 列表可修改.支持重复元素且有序
  • 元组、字符串不可修改.支持重复元素且有序

大家,有没有看出一些局限?

局限就在于:它们都支持重复元素。
如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。

而集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序

二.集合

基本语法

 和列表、元组、字符串等定义基本相同:

  • 列表使用:[ ]
  • 元祖使用:( )
  • 字符串使用:" "
  • 集合使用:{ }

演示

my_set = {"你好","世界","程序设计"}
my_set1 =set()  #定义空集合
my_set2 = {"你好世界,程序设计"}
my_set3 = {"d","d","b","a"}
my_set4 = {"a","c","c","d"}


print(f"my_set的内容是{my_set},它的类型是{type(my_set)}")
print(f"my_set1的内容是{my_set1},它的类型是{type(my_set1)}")
print(f"my_set2的内容是{my_set2},它的类型是{type(my_set2)}")
print(f"my_set3的内容是{my_set3},它的类型是{type(my_set3)}")
print(f"my_set4的内容是{my_set4},它的类型是{type(my_set4)}")
#由结果可知最后输出的集合是无序、不重复的

结果是

 由结果可知最后输出的集合是无序、不重复的

set里面的元素可以是列表、元组、range对象等。另外,也可以是字符串,如果字符串,返回值将是包含全部不重复字符的集合。

my_set2 = {"你好世界,程序设计"}
my_set = set("你好世界,程序设计")
my_set1 = set([1,2.3,4,5.325,3])

print(f"my_set的内容是{my_set},它的类型是{type(my_set)}")
print(f"my_set2的内容是{my_set2},它的类型是{type(my_set2)}")
print(f"my_set1的内容是{my_set1},它的类型是{type(my_set1)}")

结果是

 集合的常用操作——修改

首先,因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。

  • 添加新元素
  • 移除元素
  • 从集合中随机取出元素
  • 清空集合
  • 消除两个集合的差集
  • 两个集合合并
  • 统计集合元素数量len( )

1.添加新元素

语法:集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改,添加了新元素

 2.移除元素

语法:集合.remove(元素),将指定元素,从集合内移除
结果:集合本身被修改,移除了元素

 3.从集合中随机取出元素

语法:集合.pop(),功能,从集合中随机取出一个元素
结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

 4.清空集合

语法:集合.clear(),功能,清空集合
结果:集合本身被清空

5. 消除两个集合的差集

语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变

演示 

t1 = {"1","2","4"}
t2 = {"2","4","5"}
t1.difference_update(t2)
print(t1)
print(t2)

 6.两个集合的合并

语法:集合1.union(集合2)
功能:将集合1和集合2组合成新集合
结果:得到新集合,集合1和集合2不变

 演示

注意:集合的遍历

集合不支持下标索引,不能用while循环但是可以用for循环

演示

三.集合总结

 经过上述对集合的学习,可以总结出集合有如下特点:

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据(混装)
  3. 数据是无序存储的(不支持下标索引)
  4. 不允许重复数据存在
  5. 可以修改(增加或删除元素等)
  6. 支持for循环

 

相关文章:

  • Mysql中的DML
  • 船舶检测数据集VOC+YOLO格式7000张6类别
  • 【数据结构初阶】直接插入排序
  • 机器学习入门到放弃2:朴素贝叶斯
  • 任务:单域,域树的搭建
  • vue2中npm i报错gyp info it worked if it ends with ok
  • 云尚办公-0.1.0
  • Android和Linux的开发差异
  • [C++]18:set和map的使用
  • springBoot整合Redis(一、Jedis操作Redis)
  • 【自然语言处理四-从矩阵操作角度看 自注意self attention】
  • Odoo17 不再支持视图中的attrs和states
  • pringboot面向爱宠人群的宠物资讯系统36as8计算机毕业设计-课程设计-期末作业-毕设程序代做
  • Flink系列之Flink中StateBackend深入剖析和应用
  • Java可变参数和集合工具类Collections的详细介绍
  • 网站构建初级教程
  • 项目管理逻辑:老板为什么赔钱的项目也做?为什么害怕你闲着?
  • Spring Boot 框架整合 MyBatis 连接数据库,详细说明
  • MySQL主从同步
  • 微服务自动化【Docker-Compose】
  • 在Postgres中分页的五种方法,从基本到异国情调
  • 工作经历分享
  • 堆(二叉堆)-优先队列-数据结构和算法(Java)
  • awk命令的使用
  • 初学Nodejs(5):npm包管理器与包的发布
  • mysql高阶语句
  • [附源码]Python计算机毕业设计Django勤工俭学管理小程序
  • 0115 查找算法Day4
  • HTML5期末大作业:基于HTML+CSS+JavaScript实现中国风文化传媒企业官网源码
  • 计算机导论第十一周课后作业
  • [附源码]计算机毕业设计线上社区管理系统Springboot程序
  • GIT分布式版本控制系统 | 命令讲解入门