当前位置: 移动技术网 > IT编程>脚本编程>Python > Python开发【第十篇】集合

Python开发【第十篇】集合

2019年10月13日  | 移动技术网IT编程  | 我要评论

2010年考研分数线,广西防城港市,kinda出奇蛋

集合的运算

& 交集
| 并集
- 补集
^ 对称补集
< 子集
> 超集

例子:

生成两个集合的并集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1|s2
#结果{1,2,3,4}

生成两个集合的交集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1&s2
#结果{2,3}

生成两个集合的补集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 - s2
#结果生成s1但不属于s2的所有元素的集合
{1}

生成两个集合的对称补集

s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 ^ s2
#结果{1,4}

判断一个集合是另一个集合的子集

s1 = {1,2,3}
s2 = {2,3}
s2 < s1
#结果true
s1 > s2
#结果true

集合比较没有比较谁比谁大,而是比较的是谁包含谁

集合是不能比较大小的

in和not in 也同样适用于集合

集合和字典的有点:

in 和not in 运算速度比较快

能用于集合的内建函数

len(x)
max(x)
min(x)
sum(x)
any(x)
all(x)
python3 集合的方法
方法 意义
s.add(e) 在集合中添加一个新的元素e;如果元素已经存在,则不添加
s.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个keyerror错误
s.discard(e) 从集合s中移除一个元素e,在元素e不存在时什么都不做;
s.clear() 清空集合内的所有元素
s.copy() 将集合进行一次浅拷贝
s.pop() 从集合s中删除一个随机元素;如果此集合为空,则引发keyerror异常
s.update(s2) 等同于 s \
s.difference(s2) s - s2 补集运算,返回存在于在s中,但不在s2中的所有元素的集合
s.difference_update(s2) 等同于 s -= s2
s.intersection(s2) 等同于 s & s2
s.intersection_update(s2) 等同于s &= s2
s.isdisjoint(s2) 如果s与s2交集为空返回true,非空则返回false
s.issubset(s2) 如果s与s2交集为非空返回true,空则返回false
s.issuperset(...) 如果s为s2的子集返回true,否则返回false
s.symmetric_difference(s2) 返回对称补集, 等同于 s ^ s2
s.symmetric_difference_update(s2) 等同于 s ^= s2, 用 s 与 s2 的对称补集更新 s
s.union(s2) 生成 s 与 s2的全集, 等同于 s

集合是可迭代对象

集合推导式

语法:

{表达式 for 临时变量 in 可迭代对象 [if真值表达式]}
#[]代表其中的内容可以省略
l = [1,2,3,4,5]
s = {i**2 for i in l}
print(s)
{1,3,4,16,25}

集合推导式的嵌套等同于列表推导式的嵌套

python3推导式就三种:

  • 列表推导式
  • 字典推导式
  • 集合推导式

python3中容器类都可以用for循环来遍历

固定集合

固定集合是不可变的,无序的,含有唯一元素的集合

作用:固定集合可以作为字典的键,还可以作为集合的值

固定集合的构造函数

#创建一个空的固定集合
frozenset()
#用可迭代对象创建一个新的固定集合
frozenset(iterable)
f = frozenset()
f2 = frozenset('hello')

固定集合的运算

& 交集
| 并集
- 补集
^ 对称补集
in 在不在
not in 不在
<
<=
>
>=
==
!=

固定集合的方法

`

s.add(x) 添加
s.remove(x) 删除

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网