5.4章节python中集合创建、删除、增删改

1.集合的创建和删除
2.集合的操作符
3.集合的操作方法和遍历
4.列表、元组、字典、集合的区别

一、集合的创建和删除

集合(set)是一种内置的数据结构,用于存储唯一且无序的元素。集合是一个可变的数据类型,这意味着你可以添加、删除或修改集合中的元素。集合主要用于数学中的集合操作,如并集、交集、差集等。

python 复制代码
# 直接{}创建集合
s = {10, 21, 36, 19}
print(s)

# 集合存储不可变量数据类型
# s1 = {[10,20,3], [5,6,9,8,5],[4,5,8,6,6]}
# print(s1)# 报错TypeError: unhashable type: 'list'

# 使用set()创建一个空集合
s2 = set()
print(s2,type(s2))# set() <class 'set'>

s3 = {}# 创建的是字典
print(s2,type(s3))# set() <class 'dict'>

s4 = set('dhjiweojasaa')
print(s4)

s5 = set([2,5,6,8,77,6,3,41,'edwee'])
print(s5)

s6 = set(range(1,20))
print(s6)

# 集合属于序列的一种
print('max:',max(s4))
print('min:',min(s4))
print('len:',len(s5))
print('yuwen在s4集合串中存在吗?:',(10 in s4))
print('d在s4集合中存在吗?:',(15 in s4))
print('o在s4集合中不存在吗?:',(12 not in s4))

# 集合的删除

del s5
# print(s5)# NameError: name 's5' is not defined. Did you mean: 's'?

二、集合的操作符

集合支持多种数学集合操作:

并集:使用 | 或 union() 方法。
交集:使用 & 或 intersection() 方法。
差集:使用 - 或 difference() 方法。
对称差集:使用 ^ 或 symmetric_difference() 方法。

python 复制代码
set1 = {1, 2, 3, 4, 8, 5, 9}
set2 = {3, 4, 5, 6, 7, 10, 20}

# 并集
union_set = set1 | set2
print(union_set) 

# 交集
intersection_set = set1 & set2
print(intersection_set) 

# 差集
difference_set = set1 - set2
print(difference_set) # 输出set1里 除了set2交集部分

# 对称差集
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set) # 输出set1、set2并集除去交集部分

三、集合的操作方法和遍历

clear():清空集合中的所有元素。
copy():返回集合的一个副本。
isdisjoint():判断两个集合是否没有交集。
issubset():判断一个集合是否是另一个集合的子集。
issuperset():判断一个集合是否是另一个集合的超集。

add() 方法向集合中添加元素
remove() 方法删除集合中的元素。如果元素不存在,会引发 KeyError 异常
discard() 方法,它会在元素不存在时不做任何操作
pop() 方法来随机删除并返回集合中的一个元素

python 复制代码
s = {10, 21, 36, 19}

# 向集合添加元素
s.add(29)
print(s)

# 删除元素
s.remove(21)
print(s)

# 清空所有元素
s.clear()
print(s)

# 集合遍历操作
s1 = {4,9,8,5,66,32,47,89}
for i in s1:
    print(i)

# 使用enumerate
for i,j in enumerate(s1):
    print(i,'--->',j)

# 生成式
s2 = {i for i in range(1,20) }
print(s2)

s3 = {i for i in range(1,20) if i%2==0}
print(s3)

四、列表、元组、字典、集合的区别

与列表(list)、元组(tuple)和字典(dictionary)相比,集合具有以下特点和作用:

1.唯一性:集合中的元素是唯一的,即不允许有重复的元素。这有助于确保数据的唯一性和去重操作。

2.无序性:集合中的元素是无序的,这意味着你不能通过索引来访问集合中的元素。不过,这并不影响集合的性能,因为集合的内部实现通常基于哈希表,这使得查找、添加和删除操作都非常高效。

3.数学运算:集合支持多种数学运算,如并集(union)、交集(intersection)、差集(difference)和对称差集(symmetric difference)。这些操作对于处理集合数据非常有用,可以方便地进行数据的合并、筛选和比较。

4.可变性:Python中的集合是可变的,这意味着你可以在运行时添加、删除或修改集合中的元素。这与元组不同,元组是不可变的。

5.快速查找:由于集合内部通常使用哈希表来存储元素,因此查找操作的平均时间复杂度为O(1),这使得集合在处理大数据集时非常高效。

6.去除重复元素:集合常用于去除列表或其他数据结构中的重复元素。你可以通过将列表转换为集合来快速实现这一点,然后再将集合转换回列表(如果需要保持有序性)。

7.作为字典的键:集合是不可哈希的(因为它是可变的),因此不能作为字典的键。但是,集合中的元素(如果是不可变的,如整数、浮点数、字符串或元组)可以作为字典的键。

8.集合推导式:Python支持集合推导式(set comprehensions),这使得你可以使用类似于列表推导式的语法来创建集合。这有助于简化代码并提高可读性。

相关推荐
vortex510 分钟前
在Kali中使用虚拟环境安装python工具的最佳实践:以 pwncat 为例
linux·python·网络安全·渗透测试·pip·kali
五行星辰30 分钟前
Java链接redis
java·开发语言·redis
邪恶的贝利亚31 分钟前
C++之序列容器(vector,list,dueqe)
开发语言·c++
原来是猿31 分钟前
蓝桥备赛(13)- 链表和 list(上)
开发语言·数据结构·c++·算法·链表·list
异常驯兽师33 分钟前
Java集合框架深度解析:List、Set与Map的核心区别与应用指南
java·开发语言·list
AntBlack1 小时前
Python 打包笔记 : 你别说 ,PyStand 确实简单易上手
后端·python·创业
Ryan_Gosling2 小时前
QT-异步编程
开发语言·qt
Pocker_Spades_A2 小时前
Python刷题:Python基础
开发语言·python
上官-王野2 小时前
大模型day01自然语言+大模型+环境
python·ai·conda
放氮气的蜗牛2 小时前
C++从入门到精通系列教程之第十篇:异常处理与调试技巧
开发语言·jvm·c++