Python 篇章(十三)
一、set 概念
1. 什么是集合?
-
集合本质
-
类似
dict
,是一组key的集合,不储存value -
是无序 和 无重复元素的集合
-
可以使用大括号 { } 或者 set() 函数创建集合
-
注意:创建空集合时 就必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
-
2. 如何创建 集合?
- 格式
- 集合名 =
set()
- 示例
# 创建空集合
set1 = set()
print(type(set1), set1) # <class 'set'> set()
# 创建带有元素的集合
set2 = {1, 2, "lemon"}
print(type(set2), set2) # <class 'set'> {1, 2, 'lemon'}
# 创建带有多个重复的元素,验证set能否去重
set3 = {1, 2, 2, 2, "lemon", 3, "lemon"}
print(type(set3), set3) # <class 'set'> {1, 2, 3, 'lemon'}
二、集合操作
1. add.() 添加
- 示例
set4 = {1, 2, 3}
set4.add(4)
print("set4 = %s" % set4) # set4 = {1, 2, 3, 4}
set4.add(4) # 可以添加重复的,但是不会有效果,因为set是无序和无重复元素的集合
print("set4 = %s" % set4) # set4 = {1, 2, 3, 4}
set4.add("lemon") # set的元素可以是字符串,因为字符串是不可变的
set4.add((5, 6, 7)) # set的元素可以是元组,因为元组是不可变的
print("set4 = %s" % set4) # set4 = {1, 2, 3, 4, (5, 6, 7), 'lemon'}
2. update() 插入
- update() 插入整个list、tuple、字符串,打碎插入到set
- 示例
set5 = {1, 2, 3, 3}
set5.update([4, 5])
set5.update((6, 7))
set5.update("abcd")
print(f"set5={set5}") # set5={1, 2, 3, 4, 5, 6, 7, 'a', 'd', 'b', 'c'};set是无序的!
3. remove() discard() 删除
- remove() 删除指定数据;要删除的数据如果不存在则报错
- discard() 删除指定数据;要删除的数据即使不存在也不报错
- 示例
set6 = {10, 20, 30, 40, 50, 60, 70}
# remove()
set6.remove(30)
# set6.remove(80) # 报错;因为不存在
print("set6 = %s" % set6) # set6 = {70, 40, 10, 50, 20, 60}
# discard()
set6.discard(40)
set6.discard(80)
print("set6 = %s" % set6) # set6 = {70, 10, 50, 20, 60}
4. 遍历
- 示例
set7 = {"lemon", "set", "good"}
# 1
for i in set7:
print(i) # set是没有索引的!!
# 2
for index,date in enumerate(set7):
print(index,date) # index就是下标,但是没有意义,因为集合是无序的!!
5. 交集、并集
- 交集 & ( 两个集合中相同的元素组成的集合 )
- 并集 | ( 两个集合中所有元素组成的集合,但是都不重复 )
set8 = set([1, 2, 3])
set9 = set([2, 3, 4])
# 交集
a1 = set8 & set9
print("a1 = %s" % a1, type(a1)) # a1 = {2, 3} <class 'set'>
# 并集
a2 =set8 | set9
print("a2 = %s" % a2, type(a2)) # a2 = {1, 2, 3, 4} <class 'set'>
6. 类型转换
-
公式:想转什么类型就写什么类型
-
示例
# tuple --> set
Tuple1 = (1, 2, 3, 4, 5, 5, 3, 1)
Set1 = set(Tuple1)
print(Set1, type(Set1)) # {1, 2, 3, 4, 5} <class 'set'>
# set --> tuple
Set2 = {1, 2, 3, 4, 5}
Tuple2 = tuple(Set2)
print(Tuple2, type(Tuple2)) # (1, 2, 3, 4, 5) <class 'tuple'>
# list --> set
List = [1, 2, 3, 4, 5, 5, 3, 1]
print(set(List), type(set(List))) # {1, 2, 3, 4, 5} <class 'set'>
# set --> list
Set = {1, 2, 3, 4, 5}
print(list(Set), type(list(Set))) # [1, 2, 3, 4, 5] <class 'list'>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律