• (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()
  • 相关阅读:
    又从头开始
    test1
    day1
    路飞学成-Python爬虫实战密训-第3章
    路飞学成-Python爬虫实战密训-第2章
    路飞学成-Python爬虫实战密训-第1章
    【软件测试】(homework3)覆盖问题
    【软件测试】(homework3)有关三角形的测试练习
    【软件测试】(homework2)错误分析
    【软件测试】(homework1)描述曾遇到且已经被解决的error
  • 原文地址:https://www.cnblogs.com/renshengruxi/p/14255990.html
Copyright © 2020-2023  润新知