Python中的集合
Python中的集合
集合(set)是 无序的 、 不重复的 元素集合。
1,集合的创建
使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。下面是例子:
set1 = {1, 2, 3} #创建一个包含1,2,3三个元素的集合
set2 = set(()) #创建空的集合必须用set(),使用set来创建集合时要注意这个双括号
set3 = set(("a", 1, "b"))
print(set1) #{1, 2, 3}
print(set2) #set()
print(set3) #{1, 'a', 'b'}
注意:集合是 无序 的,因此你无法确定元素的显示顺序,所以你的运行结果可能和我不一样,下面的所有例子也有可能和我不一样。
2,集合的操作
2.1求集合的长度
求集合的长度可以使用 len() 方法,该方法很常用,len()还能求列表、元组的长度:
set4 = {1, 23, 'a', "sd"}
print(len(set4)) #4
2.2判断一个元素是否在集合中
可以使用 in 关键字判断一个元素是否在集合中:
set5 = {1, 'd', "df", 3}
print(1 in set5) #True
print('a' in set5) #False
2.3集合的运算
在集合中可以使用 - 、 | 、 & 、 ^ 来对集合进行运算:
a = set("abcd")
b = set('defg')
print(a) #{'d', 'a', 'b', 'c'}
print(b) #{'e', 'g', 'f', 'd'}print(a - b) #{'c', 'b', 'a'} 包含在集合a中但不包含在集合b中的元素print(a | b) #{'c', 'd', 'a', 'e', 'b', 'f', 'g'} 集合a和集合b中的所有元素,由于集合中的元素不能重复,因此只有一个dprint(a & b) #{'d'} 既包含在集合a中,又包含在集合b中的元素print(a ^ b) #{'g', 'f', 'e', 'a', 'c', 'b'} 不同时包含在集合a和集合b中的元素
2.4向集合中添加元素
如果只是将一个元素添加到集合中,使用 add() 方法,但需要注意的是,因为集合中的元素是不能重复的,所以,如果添加进集合的元素在集合中已经存在,则不会执行任何操作:
set7 = {'a', 1, 'b', 3}
set7.add(2) #当要加进集合中的元素在集合中不存在时,能加入
print(set7) #{1, 2, 3, 'b', 'a'}
set7.add('a') #当要加进集合中的元素在集合中已经存在时,不会执行任何操作
print(set7) #{1, 2, 3, 'b', 'a'}
如果要将多个元素添加进集合中,则要使用 update() ,这个方法也能列表,元组,字典等加入集合中,如果要加入的元素有多个,使用 ,将其隔开:
set8 = set(('a', 'b'))set8.update('c', 'd') #一次将多个元素加入到集合中
print(set8) #{'d', 'a', 'c', 'b'}set8.update([100,200], [300, 500]) #将多个列表中的元素都加入到集合中
print(set8) #{'b', 100, 200, 300, 500, 'd', 'c', 'a'}set8.update((-1, -2), (-3, -4)) #将多个元组中的元素都加入到集合中
print(set8) #{'a', 100, 'b', 200, 300, 'd', 500, 'c', -2, -4, -3, -1}set8.update({'集', '合'}, {'加', '入'}) #将多个集合中的所有元素加入到集合中
print(set8) #{'合', 'b', 100, 'c', '集', 200, 'd', 300, 'a', '加', 500, -2, '入', -4, -3, -1}
2.5删除集合中的元素
想要删除集合中的元素,可以使用 remove() 方法,但值得 注意 的是:用remove()方法移除集合中的元素在集合中不存在时,将发生错误。
因此,可以使用 discard() 方法,discard()方法在移除集合中不存在的元素时不会发生错误。
set9 = {'a', 'b', 'c'}set9.remove('a')
print(set9) #{'b', 'c'} 使用remove()方法删除集合中存在的元素,删除成功!# set9.remove('d') #因为d不在集合中,使用remove()方法将报错set9.discard('d') #使用discard()方法删除集合中不存在的元素,不会报错,啥也没做
print(set9) #{'b', 'c'
其实,还有一种可以删除集合中的随机元素的方法,它是 pop() ,为什么是随机的呢?因为集合(set)的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左边第一个元素进行删除。
set10 = {"ss", "sdf", "gd", "df"}
print(set10.pop()) #df 执行结果可能和我不一样,因为是随机的
print(set10.pop()) #ss
print(set10) #{3, 4}
2.6清空集合
可以使用 clear() 方法来清空一个集合中的所有元素,即集合将变为一个空集合。当然,使用del可以将集合变量删除。
set11 = {'a', 'b', 'c'}
set11.clear() #使用clear()方法清空集合
print(set11) #set()
set12 = {'a', 'b', 'c'}
del set12
print(set12) #将发生错误,因为set12这个变量已经被删除
Python中的集合相关推荐
- python中两个集合的运算并交补_三种方式实现 Python 中的集合的交、并、补运算...
文章目录 三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的 ...
- python集合的概念_用Python中的集合Set讲解演示高一数学集合的概念
数学编程不分家,用Python可以方便的表示高中数学知识.现在以集合为例进行讲解,高一数学设计集的概念,讲解了交并补的相关知识,用Python中的集合类型可以方便的表示.同时可以借助数学知识更好的理解 ...
- python交并补符号_三种方式实现 Python 中的集合的交、并、补运算-阿里云开发者社区...
三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的或抽象的对 ...
- 站长在线零基础Python完全自学教程18:Python中的集合完全解读
欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第18课< Python中的集合完全解读>.本节课是一个大课,我分了这些知识 ...
- python集合类型的四种操作符_深入解析Python中的集合类型操作符
(1)标准类型操作符(所有的集合类型) 成员关系 (in, not in) 就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价 等价/不等价被用 ...
- python中的集合类型_Python中的集合类型知识讲解
>>> s.add('z') >>> s set(['c', 'e', 'h', 'o', 'p', 's', 'z']) >>> s.updat ...
- python中difference_Python 集合 symmetric_difference() 使用方法及示例
Python 集合 symmetric_difference() 使用方法及示例 Python symmetric_difference()方法返回两组对称差集. 两个集合A和B的对称差是在A或B中的 ...
- python中的集合set类型是可变的吗_[Python] Python数据类型(三)集合类型之set集合和frozenset集合...
1.集合基本概念 集合是0-n个对象引用的无序组合,集合中存储的元素不可重复,因此这些对象引用的引用的对象必须是可哈希运算的 . 1.python中提供了两种内置的集合类型:可变的set类型和固定的 ...
- 集合遍历python_遍历Python中的集合
在本文中,我们将学习在Python 3.x中对集合进行遍历/遍历.或更早. 它是对象的无序集合,没有任何重复.这可以通过将所有元素括在花括号内来完成.我们还可以通过关键字" set" ...
最新文章
- c++设计一个不能被继承的类
- datagrid数据表格当数据为0的时候页面不显示数据
- 耳机不分主从是什么意思_强悍的配置,百元级的价格,Xisem西圣 Ares战神蓝牙耳机体验...
- Spark中Data skew(数据倾斜)Java+Python+Scala三种接口完整代码
- linux pmap was java,jvm 《九》pmap linux 命令介绍 及使用
- ethtool用法 linux_Linux命令之Ethtool用法详解
- Springboot之actuator配置不当漏洞RCE(jolokia)
- javascript 函数初探 (六)--- 闭包初探#4
- java 数组的应用(一维)
- 如何查看centos系统版本以及配置信息
- PHP-FPM 配置文件详解
- qt中使用日志系统,自定义日志彩色输出,qt日志写入文件,自定义qt日志格式,同时提供Qt日志重定向功能(将qDebug信息输出到界面控件)
- unity开发 斗地主算法—判断手里的牌是否有大于上家的牌(是否显示要不起按钮)
- 动态拨号主机多IP随机分配拨号自动分配
- Linux下ps -ef 和 ps aux 的区别及格式详解
- hd530黑苹果硬解_解决黑苹果HD3000核显 VGA和HDMI外接显示器无反应问题
- Linux的Locale
- parameter estimation for text analysis
- [MAUI]模仿微信“按住-说话”的交互实现
- CF28B pSort 解题报告