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

相关推荐
建群新人小猿5 分钟前
会员等级经验问题
android·开发语言·前端·javascript·php
007php00718 分钟前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
数据小小爬虫19 分钟前
如何利用Java爬虫获得1688店铺详情
java·开发语言
Tech Synapse20 分钟前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
biomooc31 分钟前
R语言/Rstudio 报错
开发语言·r语言
Theliars36 分钟前
C语言之字符串
c语言·开发语言
Root_Smile38 分钟前
【C++】类和对象
开发语言·c++
Reese_Cool39 分钟前
【数据结构与算法】排序
java·c语言·开发语言·数据结构·c++·算法·排序算法
一行玩python1 小时前
SQLAlchemy,ORM的Python标杆!
开发语言·数据库·python·oracle
「QT(C++)开发工程师」1 小时前
【qt版本概述】
开发语言·qt