猪行天下之Python基础——3.4 集合

简介: 内容简述:1、集合(Set)

1、集合(Set)


列表元组通过索引查找元素,字典通过键来查找元素,而接下来的集合无法去索引某个具体的元素,集合里的元素「无序」,且「自动去重」,使用「{}大括号」包裹元素,使用逗号进行分隔。另外有一点要注意:创建 空集合 必须使用 set()函数 来构建,而不能直接用{},直接一个{}的话,会直接创建一个空字典,而 不是一个空集合


① 集合的基本操作


代码示例如下


# 1.集合创建
set_1 = set() # 创建一个空集合
set_2 = {1, 2, 3, 4, 5, 1, 2} # 普通方式创建集合,重复元素会被自动删除
set_3 = set('12345') # 通过字符串构建,注意元素无序
set_4 = frozenset({1,2,3,4}) # 创建一个不可变集合
print("1.集合创建:")
print(set_1)
print(set_2)
print(set_3)
print(set_4)
# 2.判断元素是否在集合中
print("\n2.元素是否在集合中:")
print('集合中有6这个元素:%s' % (6 in set_1)) # 判断集合中是否有此元素
print('集合中没有7这个元素:%s' % (7 not in set_1)) # 判断集合中是否有此元素
# 3.集合增删元素
print("\n3.增删集合中的元素:")
set_1.add(6)
print("往集合中插入一个元素6后:%s" % set_1)
set_1.remove(6) # 如果删除的元素不存在会报错,建议先判断下是否存在运算再删除
print("往集合中删除一个元素6后:%s" % set_1)
set_1.discard(6) # 删除集合中的一个元素,如果元素不存在,不执行任何操作
print("删除集合中的一个元素6后:%s" % set_1)
set_2.pop() # 无序随机删除并返回任意一个集合元素,集合为空会引发KeyError
print("随机弹出集合中的一个元素后:%s" % set_2)
# 4.集合遍历
print("\n4.遍历集合中的元素:\n set_2 =", end='')
for data in set_2:
    print(data, end='\t')
# 5.清空集合
set_2.clear()
print("\n\n5.清空集合中的元素 :%s" % set_2)


运行结果如下


1.集合创建:
set()
{1, 2, 3, 4, 5}
{'5', '3', '1', '4', '2'}
frozenset({1, 2, 3, 4})
2.元素是否在集合中:
集合中有6这个元素:False
集合中没有7这个元素:True
3.增删集合中的元素:
往集合中插入一个元素6后:{6}
往集合中删除一个元素6后:set()
删除集合中的一个元素6后:set()
随机弹出集合中的一个元素后:{2, 3, 4, 5}
4.遍历集合中的元素:
set_2 =2    3   4   5 
5.清空集合中的元素 :set()


② 集合运算相关的操作


代码示例如下


set_1 = {'a', 'b', 'c', 'd', 'e', 'f'}
set_2 = set('cdefgh')
set_3 = set('ab')
# 进行数学集合运算
# 子集,集合为某个集合的一部分,使用操作符<,或issubset()进行判断
print('集合set_2是集合set_1的子集:%s' % (set_2 < set_1))
print('集合set_3是集合set_1的子集:%s' % (set_3.issubset(set_1)))
# 并集,两个集合所有元素构成的集合,使用操作符 | 或 union() 函数完成
print("集合set_1和集合set_2的并集:%s" % (set_1 | set_2))
print("集合set_1和集合set_2的并集:%s" % (set_1.union(set_2)))
# 交集,同时存在于两个集合中的元素构成的集合,使用操作符 & 或 intersection() 函数完成
print("集合set_1和集合set_2的交集:%s" % (set_1 & set_2))
print("集合set_1和集合set_2的交集:%s" % (set_1.intersection(set_2)))
# 差集,集合里有另一个集合里没有的元素构成的集合,使用操作符 - 或 difference() 函数完成
print("集合set_1和集合set_2的差集:%s" % (set_1 - set_2))
print("集合set_1和集合set_2的差集:%s" % (set_1.difference(set_2)))
# 对称差,只属于其中一个集合而不属于另一个集合的元素组成的集合
# 或者理解成全集除去交集部分元素后剩下的元素组成的集合
# 使用操作符 ^ 或 symmetric_difference() 函数完成
print("集合set_1和集合set_2的对称差:%s" % (set_1 ^ set_2))
print("集合set_1和集合set_2的对称差:%s" % (set_1.symmetric_difference(set_2)))


运行结果如下


集合set_2是集合set_1的子集:False
集合set_3是集合set_1的子集:True
集合set_1和集合set_2的并集:{'h', 'b', 'd', 'c', 'f', 'g', 'e', 'a'}
集合set_1和集合set_2的并集:{'h', 'b', 'd', 'c', 'f', 'g', 'e', 'a'}
集合set_1和集合set_2的交集:{'c', 'e', 'd', 'f'}
集合set_1和集合set_2的交集:{'c', 'e', 'd', 'f'}
集合set_1和集合set_2的差集:{'b', 'a'}
集合set_1和集合set_2的差集:{'b', 'a'}
集合set_1和集合set_2的对称差:{'h', 'b', 'g', 'a'}
集合set_1和集合set_2的对称差:{'h', 'b', 'g', 'a'}


相关文章
|
24天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
62 1
思科设备巡检命令Python脚本大集合
|
1月前
|
存储 缓存 API
解密 Python 集合的实现原理
解密 Python 集合的实现原理
37 11
|
1月前
|
存储 自然语言处理 数据处理
使用Python计算多个集合的交集详解
使用Python计算多个集合的交集详解
38 1
|
2月前
|
存储 API 索引
Python 的集合是怎么实现的?
Python 的集合是怎么实现的?
48 9
|
2月前
|
存储 索引 Python
Python常用数据结构——集合
Python常用数据结构——集合
|
2月前
|
存储 数据处理 Python
Python中的Set集合:高效数据处理的利器
Python中的Set集合:高效数据处理的利器
40 0
|
2月前
|
Python
python推导式-列表,元组,字典,集合推导式
这篇文章介绍了Python中的推导式,包括列表推导式、元组推导式、字典推导式和集合推导式,提供了它们的基本格式和示例代码,并解释了推导式如何简化循环和条件判断的代码编写。
|
3月前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
3月前
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
|
3月前
|
存储 索引 Python
五:《Python基础语法汇总》— 列表&元组&集合
本篇文章讲解了关于列表;元组和集合这三个基本数据类型的常用方法与函数。及同一性操作符;成员判断符;浅拷贝与深拷贝等多方面的知识点
37 4