Python---第9天---集合

Python—第9天—集合

集合

集合(set)是一个无序的不重复元素序列。

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

一个空字典。集合应该满足以下特性:

  1. 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。
  2. 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
  3. 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。
创建集合
set1 = {1, 5, 2, 4, 2, 3, 3, 0}
print(set1, len(set1))
# 创建空集合
set2 = set()
print(type(set2))
遍历集合
for elem in set1:
    print(elem)

集合的运算

成员运算
set1 = {1, 2, 3, 5, 7, 8, 9}
set2 = {2, 4, 6, 8}

# 成员运算 - 确定性(元素要么在集合中,要么不在集合中)
# 集合的成员运算在效率上是远远高于列表的成员运算
print(1 in set1)
print(1 not in set1)
交并差运算

对集合求并集、交集、差集以及对称差

set1 = {1, 2, 3, 5, 7, 8, 9}
set2 = {2, 4, 6, 8}

# 交集
print(set1 & set2)
# 并集
print(set1 | set2)
# 差集
print(set1 - set2)
print(set2 - set1)
# 对称差
print(set1 ^ set2)
print((set1 | set2) - (set1 & set2))
比较判断
set1 = {1, 2, 3, 5, 7, 8, 9}
set2 = {2, 4, 6, 8}
set3 = {1, 2, 3, 4, 5, 6, 7, 8, 9}

# 判断真子集
print(set1 < set3)
# 判断子集
print(set1 <= set3)
# 判断超集
print(set3 > set2)

集合的操作(方法)

Python中的集合是可变类型,我们可以通过集合类型的方法为集合添加或删除元素。

集合底层使用的是哈希存储,通过计算元素的哈希码来决定元素存储的位置,这是一种高效率的存储方案。
哈希存储的关键是设计一个好的哈希函数,尽量保证不同的对象能够计算出不同的哈希码。
可变容器(列表、集合、字典)都无法计算哈希码,因此都不能放到集合中,作为集合的元素。

添加元素
set1 = {'apple', 'banana', 'pitaya', 'apple'}
# 添加元素
set1.add('durian')
set1.add('grape')
print(set1)
删除元素
# 删除元素
set1.discard('pitaya')
print(set1.pop())
print(set1.pop())
print(set1)

集合是无序的,因此在使用 pop() 方法时,不知道删除的是哪个项目,它是随机删除。

如果要删除的项目不存在,则 discard() 不会引发错误。

清空元素
# 清空
set1.clear()
print(set1)

集合内置方法完整列表

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值