Python【集合】


什么是集合:

1.集合是一个可变容器
2.集合内的数据对象都是唯一的(不能重复)
3.集合是无序的存储结构,集合内的数据没有先后关系
4.集合是可迭代对象
5.集合相当于是只有键没有值得字典(键就是集合中的数据)
6.集合内的元素是不可变的(所以元素不能是列表)

1. 创建集合

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

  • 使用直接量创建集合(无法创建空集合)
>>> setA = {"狗子","猫咪","舞队"}
>>> type(setA)
<class 'set'>
  • 使用构造函数创建集合 - set(iterable)
>>> setA = set([1,2,3])
>>> setA
{1, 2, 3}

2.集合的相关操作

2.1 添加元素

add(key)
将key添加到集合中,如果元素已存在,则不进行任何操作。无返回值。

>>> setA = {1,2,3}
>>> setA.add(4) 
>>> setA
{1, 2, 3, 4}

update(iterable)
修改当前集合,也可以添加新元素到集合中。参数可以是列表,元组,字典等。无返回值。

>>> setA = set()
>>> setA.update([1,2,3,4])
>>> setA
{1, 2, 3, 4}
>>> setA.update([3,4,5,6])
>>> setA
{1, 2, 3, 4, 5, 6}
>>> 

2.2 移除元素

remove(key)
将key从集合中移除,如果key不存在,则会发生错误。无返回值。

discard(key)
将key从集合中移除。无返回值。注意:如果要删除不存在的元素,不会发生错误。

pop()
用于随机删除一个元素。返回值 :返回被删除的元素.

2.3 清空集合

clear()
清空集合内所有的元素。无返回值。

2.4 复制一个集合

copy()
复制一个集合。返回值:返回已复制的集合对象

>>> setA
{3, 4, 'i', 'f', 's'}
>>> setB = setA.copy()
>>> setB
{3, 4, 'i', 'f', 's'}

3. 集合的运算

  • 交集&
>>> setB = {1,2,3,4,5,6,10}
>>> setA = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> setA & setB
{1, 2, 3, 4, 5, 6}
  • 并集|
>>> setB = {1,2,3,4,5,6,10}
>>> setA = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> setA | setB
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
  • 补集-
>>> setB = {1,2,3,4,5,6,10}
>>> setA = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>>> setA - setB	#生成属于setA但不属于setB的所有的元素 
{0, 8, 9, 7}
>>> setB - setA   #生成属于setB但不属于setA的所有的元素 
{10}
>>> 
  • 集合相等
    setA == setB 返回False或True

  • 集合不等
    setA != setB返回False或True

  • 成员运算
    in 和 not in

4. 可用于集合的内建函数

len(set) : 集合内元素的个数
max(set) : 最大值
min(set) : 最小值
sum(set): 和
any(set) : 任何一个元素为真,则返回真
all(set) : 所有元素为真,则返回真

>>> setA = {0,1,2,3}
>>> any(setA)
True
>>> all(setA)
False
>>> sum(setA)
6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值