Python基础-集合与不可变集合

本文介绍了Python中的集合和不可变集合。集合是一个无序可变序列,元素必须是可hash的不可变类型。不可变集合是无序不可变的,常用于字典的键。内容包括集合的创建、操作(如交、并、差、包含)、添加和删除元素的方法,以及不可变集合的创建和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合与不可变集合的关系和列表与元组之间的关系类似。


先总结一下集合

集合是一个无序的可变的序列。集合中的元素必须是可hash的,即不可变的数据类型。

空集合

a=set()

注意a={}创建的是一个空字典。

也可以用set()转化为集合

b=[1,2,3,4]

a=set(b)

a

{1,2,3,4}


还可以用{}来创建一个集合

a={1,2,3,4,1}

a

{1,2,3,4}

与字典一样,因为集合是无序的,所以当有重复元素时,只保留其中一个。



与数学中集合的定义类似,python中的集合也有交,并,差,包含等操作。


1.交  a.intersection(b) 或 a&b

返回a,b中的所有相同的元素组成的集合,且只保留一个.

a={1,2,3,4}

b={2,3,4,5}

a&b

{2,3,4}


2.并  a.union(b) 或 a|b

返回a,b中所有元素组成的集合,相同元素只保留一个。

a|b

{1,2,3,4,5}


3.差 a.difference(b) 或 a-b

返回只在a中而不在b中的元素组成的集合。

a-b

{1}


4.对称差  a.symmetric_difference(b) 或 a^b

返回a,b中所有不相同的元素组成的集合。

a^b

{1,5}


5.包含 b.issubset(a) 或 b<=a

判断b是不是a的子集,返回一个bool值。

真子集用<或>号判断。


改变集合的方法

6.添加元素 a.add()

向a中添加一个不可变的元素。size(a):=size(a)+1

a={1,2,3,4}

a.add(5)

a

{1,2,3,4,5}


7.批量添加元素 a.update(seq)

将seq中的与a中元素不同的元素全部添加到a中。seq可以是任意的序列。

a={1,2,3,4}

a.update((1,5,6))

a

{1,2,3,4,5,6}


8.批量删除元素 a.defference_update(seq)

去除a中所有与seq中相同的元素。


9.删除单一元素 a.remove()   a.discard()

remove删除a中的一个元素,若不存在就报错。

discard删除a中的一个元素,若不存在不会报错。


10.随机删除并弹出一个元素 a.pop()

由于set没有顺序,不能像列表一样按照index删除弹出元素,因此pop随机删除并弹出一个元素。a为空集时会报错。

a={1,2,3,4,5}

a.pop()

1



再来总结一下不可变集合

不可变集合就是一个无序的不可变的集合

用frozenset(seq)创建

a=frozenset([1,2,3,(1,2,4)])

a

frozenset({1,2,3,(1,2,4)})

元素也只能是可hash的

frozenset([1,2,3,[1,2,4]])

error

主要用来做字典的键。。与tuple的区别在于无序,元素不可重复,且元素只能是不可变类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值