python 编程开发 —— 集合(set)介绍

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

1、集合(set)

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

  创建集合有两种方法,一种是使用大括号 “{}” 和 逗号 “,” 来定义;还有一种就是使用 set() 来定义。

注意:

  创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典的。

格式:

>>> set1 = {0,1,2,3,4,5,6,7,8,9}
>>> set1
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> set2 = set([0,1,2,3,4,5,6,7,8,9])
>>> set2
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> set1 == set2 # 判断集合是否相等
True

集合(set)内置方法(BIF):

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset()判断指定集合是否为该方法参数集合的子集
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
union()返回两个集合的并集
update()给集合添加元素

举例:

# 定义集合 set3
>>> set3 = set('12345')
>>> set3
set(['1', '3', '2', '5', '4'])

#定义集合 set4
>>> set4 = set('45678')
>>> set4
set(['8', '5', '4', '7', '6'])

#集合 set3 或 set4 中包含的所有元素
>>> set3 | set4
set(['1', '3', '2', '5', '4', '7', '6', '8'])

# 集合 set3 中包含而集合 set4 中不包含的元素
>>> set3 - set4
set(['1', '3', '2'])

# 集合 set3 和 set4 中都包含了的元素
>>> set3 & set4
set(['5', '4'])

# 不同时包含于 set3 和 set4 的元素
>>> set3 ^ set4
set(['1', '3', '2', '7', '6', '8'])

# in 和 not in 的用法
>>> 3 in set3
False
>>> set3
set(['1', '3', '2', '5', '4'])
>>> '3' in set3
True
>>> '8' not in set3
True

2、不可变集合 frozenset(…)

  有时我们希望某个集合中的参数具有稳定性,不允许任何操作对其进行 增加 或者 删除 操作;那么我们就可以使用 frozenset() 内建函数来实现。

格式 & 举例:

>>> set5 = frozenset({1,2,3.1515926,4,'5'})
>>> set5
frozenset(['5', 2, 3.1515926, 4, 1])
>>> set5.add(6) # 非法操作, 抛出异常

Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    set5.add(6)
AttributeError: 'frozenset' object has no attribute 'add'
>>> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值