Python组合数据类型之集合类型

单元概述
主要解决问题:让程序更好地处理一组数据
三类重要组合数据类型:集合类型、序列类型和字典类型

学完本章,我们能够在头脑中建立集合、序列和字典的模式来表达对一组数据的表达和处理

1. 定义

集合是多个元素的无序组合
集合中的元素不能重复
集合中的元素是不可变数据类型-否则可能打破上一条

不可变数据类型有:整数、浮点数、负数、字符串、元组

2. 表示

集合用大括号{}表示,元素之间用逗号分隔
建立集合使用{}或者set() -建立空集合必须使用set()

A = {
    
    "python",123,("python",123)}
B = set("pypy123")
print(A)
print(B)

输出
{‘python’, (‘python’, 123), 123}
{‘3’, ‘1’, ‘2’, ‘p’, ‘y’}//注意,集合中元素并无顺序

3. 集合操作符

① 并 |
② 差 –
③ 交 &
④ 并减交 ^
在这里插入图片描述

⑤ 关系操作符 判断一个集合是否包含在另一个当中 返回True/False
< <= > >=
⑥ 增强操作符-用S和T的操作结果更新S
在这里插入图片描述

A = {
    
    "p","y","python",123,("python",123)}
B = set("pypy123")
print(A-B)

结果
{‘python’, 123, (‘python’, 123)}
4. 集合处理方法
增加元素 S.add(x)
删除元素 S.discard(x)S.remove(x) 前者删除不存在元素不会报错,后者会
清空集合 S.clear()
随机取出元素并更新集合 S.pop() 如果S为空,返回异常
复制集合 S.copy() 返回集合S的一个副本
求元素个数 len(S)
判断元素是否在集合S中 x in S 返回True/False 对应有 x not in S
转为集合类型 set(x)

使用for in遍历集合的时候,集合的顺序是不确定的
(集合在定义时有存储顺序,但这个顺序程序员无法利用)

A = {
    
    "A","B",123}
for item in A:
    print(item,end="")

输出
B123A

也可以用while对集合进行遍历

A = {
    
    "A","B",123}
try:
    while True:
        print(A.pop(),end="")
except:
    pass
print("",A)

输出
B123A set()
5. 集合类型应用场景
① 包含关系的比较,即已知一组数据,如何判断另一组或者其他数据是否在当中

sss = "p" in {
    
    "p","y",123}
print(sss)
ttt = {
    
    "p"} > {
    
    "p","y",123}
print(ttt)

输出
True
False
② 数据去重,即将一个有重复类型的列表,变成一个无重复类型的

ls = ["p","p","y","y",123]#列表
s = set(ls)#集合
lt = list(s)#列表
print(lt)

输出
[‘p’, 123, ‘y’]

出处:北理工Python慕课

猜你喜欢

转载自blog.csdn.net/weixin_44997802/article/details/108098277
今日推荐