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),这使得你可以使用类似于列表推导式的语法来创建集合。这有助于简化代码并提高可读性。

相关推荐
&岁月不待人&15 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove18 分钟前
G1垃圾回收器日志详解
java·开发语言
无尽的大道26 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒30 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio39 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE41 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻1 小时前
WPF中的依赖属性
开发语言·wpf
洋2401 小时前
C语言常用标准库函数
c语言·开发语言
进击的六角龙1 小时前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点1 小时前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式