欢迎来到测试Test-Admin的博客

本来以为,学习了这么多年,我已经洞察了世界,真相却不过是蒙蔽了自己。原来世界如此精彩,而我却一无所知。昨天已经成为过去,明天还是一个未知,但今天是一个礼物。珍惜自己,把握每一寸光阴!

(16)-Python3之--集合(set)操作

1.定义

集合的关键字:set

集合主要作用:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

集合用大括号{}表示,元素间用逗号分隔。

建立集合类型用{}或set(),建立空集合,必须使用set()。

集合元素之间无序,每个元素唯一,不存在相同元素。

在python中,集合元素不可更改,不能是可变数据类型。

  -集合中的每个元素,一旦放入集合中,不可修改。

  -可变数据类型元素不可放入集合内。

2.集合创建方式

# 使用{}建立集合
A = {"python",123,("python",123)}
print(A)

# 使用set()建立集合
# 注:set函数创建的集合,会将每个字符分开分别创建一个元素,集合中不存在相同集合,所以只保留一个相同元素,集合没有顺序,所以顺序是随机的
B = set("pypy123")
print(B)

结果:
{123, 'python', ('python', 123)}
{'3', '1', 'p', 'y', '2'}

3.集合操作符

a = t | s          # t 和 s的并集  
b = t & s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)

 效果也如下图所示:

 4.增强型集合操作符

Python还提供了关系操作符外,python还提供了>  =  >=  <=  <
S<=T或S<T 返回True/False,判断S和T的子集关系
S>=T或S>T 返回True/False,判断S和T和包含关系

增强操作符如图所示:
增强操作符:使用赋值=符号,更新集合的元素

 注:如果不使用增强操作符,两个集合进行运算,会生成一个新的集合。

5.集合处理方法

如图所示:

 注:discard和remove的区别在于是否产生异常 如果出现异常,可以使用之前学过的try异常处理捕捉异常,所以这里很关键。

除此之外:
S.clear() 移除S集合中的所有元素
S.pop() 随机返回集合S中的一个元素,更新S,若S为空产生keyerror异常
除此之外还有:

# 基本操作:
s = set([3,5,9,10])  # 创建一个数值集合
t = set("Hello")  # 创建一个唯一字符的集合
t.add('x')  # 添加一项
s.update([10, 37, 42])  # 在s中添加多项

# 使用remove()
# 可以删除一项:
t.remove('H')

# set的长度
len(s)

# 测试 x 是否是 s 的成员
x in s

# 测试 x 是否不是 s 的成员
x not in s

# 测试是否 s 中的每一个元素都在 t 中
s.issubset(t)
s <= t

# 测试是否 t 中的每一个元素都在 s 中
s.issuperset(t)
s >= t

# 返回一个新的 set 包含 s 和 t 中的每一个元素
s.union(t)
s | t

# 返回一个新的 set 包含 s 和 t 中的公共元素
s.intersection(t)
s & t

# 返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.difference(t)
s - t

# 返回一个新的 set 包含 s 和 t 中不重复的元素
s.symmetric_difference(t)
s ^ t

# 返回 set “s”的一个浅复制
s.copy()

 

posted on 2021-01-09 19:32  Test-Admin  阅读(356)  评论(0编辑  收藏  举报

导航