python-8.集合

集合

  • 集合的特点
1.无序
2.是可迭代对象
3.不是序列
4.是可变类型
补充:
字典的键由集合实现,字典的键的特性就是集合的特性
集合的底层实现:hash函数
  • 集合的创建
1.手工
    s = {1, 2, 3}
    不能创建空集合
2.构造方法
    set():创建空集合:set()
注意:空集合的形式:set()
    set(iterable):通过可迭代对象创建集合
  • 集合的增加(增)
1.add(value):
    向集合中增加一个元素
代码:
s = {1, 2}
s.add(3)
print(s)

效果:
{1,2,3}
  • 集合的删除(删)
1.clear():
    清空集合
2.pop():
    随机删除一个元素
3.remove(value):
    删除指定元素
  • 集合的修改(改)
只能删除某个值,添加新的值--伪修改
  • 集合的访问(查)
只能通过遍历的形式访问全部
  • 集合的方法
1.交集&   intersection(..):
2.差集-   difference(...):
3.并集|   union(...):
4.分离集   isdisjoint(b)
5.对称差集  symmetric_difference(...):
补充:
    a.方法()不会修改原数据
    set1.方法名_update(set2) 加上update会修改原数据
    a.update(b) 会修改调用者
    a.issubset(d) 是否是子集
    a.issupperset(d) 是否是父集
代码:
a={1,2,3}
b={3,4,5}
c={7,8,9}
d={3}
# 交集
print(a&b, a.intersection(b))
# 差集
print(a-b, a.difference(b))
# 并集
print(a|b, a.union(b))
# 分离集
print(a.isdisjoint(b))
# 对称差集
print(a.symmetric_difference(b))

a.update(b)
print(a, b)
a.intersection_update(b)
print(a, b)
print(a.issubset(d))
print(a.issuperset(d))

效果:
{3} {3}
{1, 2} {1, 2}
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5}
False
{1, 2, 4, 5}
{1, 2, 3, 4, 5} {3, 4, 5}
{3, 4, 5} {3, 4, 5}
False
True
  • 集合支持的运算符
in / not in
  • 不可变集合
1.frozenset():
    创建不可变空集合(一旦创建不可修改)
2.frozenset(iterable)
    利用可迭代对象创建不可变集合
  • 补充:
集合中的数据:必须是可哈希的数据(不可变类型数据)
    s={12[1,2,3]}  s={{1,2,3},{4,5,6}}
    错的,列表和集合和字典都是可变的,frozenset不可变可以
    注意:每一个元素都得是不可变类型(包括元素中的元素)
集合可以存放多个数据,多种数据,存放不可变类型数据,必须保证,每一元素都是不可变类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值