python中的集合详解
创始人
2024-03-18 14:11:08
0

目录

一.思考

二.集合

基本语法

 集合的常用操作——修改

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循环

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...