• Python集合:set


    集合

    集合的描述

    set是一个无序不重复的序列,可以用{}或者 set() 函数创建集合,它存放不可变类型(如字符串、数字、元组)数据。

    注意:创建一个空集合必须使用set()方法,因为{}是用来生成一个空字典的。

    集合的方法

    • add()

    将元素添加到集合中。

    s1 = {1,2,3,4,5}
    s1.add('new_number')
    print(s1)
    

    {1, 2, 3, 4, 5, 'new_number'}

    • update()

    可一次更新多个值。

    # update(x),将x添加到集合中,且参数可以是列表、元组、字典等
    s2 = set(('aaa', 'ccc', 'fff'))
    # 添加字典只能添加不可变的--键
    dict_1 = {'name': 'bb', 'age': 'cc', 'aaa': 11}
    s2.update(dict_1)
    print("新集合", s2)
    

    新集合 {'name', 'aaa', 'fff', 'ccc', 'age'}

    • remove()

    移除集合中的某个元素。

    s3 = set(('aaa', 'ccc', 'fff'))
    s3.remove('ccc')
    print(s3)
    

    {'aaa', 'fff'}

    此外还有一个discard()函数也能移除集合中的元素,与remove()不同的是,移除的元素是字典中没有的元素时discard()不会报错。

    • pop()

    随机删除集合中的一个元素。

    s4 = set(('aaa', 'ccc', 'fff'))
    s4.pop()
    print(s4)
    

    {'aaa', 'ccc'}

    • clear()

    清空集合

    • 计算集合元素个数。

      s5 = set(('aaa', 'ccc', 'fff')) print('集合元素个数为:'+str(len(s5)))

    • copy()

    复制一个新的集合。

    s6 = s5.copy()
    print(s6)
    

    {'aaa', 'ccc', 'fff'}

    • difference()

    求差集,也可以用-

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f', 1, 'ww'}
    # 两种求差集的方法
    print("在s中不在s1中: ", s.difference(s1))
    print("在s1中不在s中: ", s1-s)
    

    在s中不在s1中: {'cc'}
    在s1中不在s中: {'ww', 1}

    • intersection()

    求交集,也可以用&

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f', 1, 'ww'}
    # 同时在集合s 和 s1 中的元素
    print(s.intersection(s1))
    print(s1&s)
    
    • union()

    求并集,也可以用|

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f', 1, 'ww'}
    # 元素在集合 s 中或在集合 s1 中
    print(s.union(s1))
    print(s1|s)
    
    • sysmmetric_difference()

    求对称差集,也可以用^

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f', 1, 'ww'}
    # 除集合s和集合s1共有的以外的元素
    print(s.symmetric_difference(s1))
    print(s1^s)
    
    • issubset()

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

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f'}
    print(s.issubset(s1))
    print(s1.issubset(s))
    
    • isuperset()

    判断一个集合是否是另一个集合的父集.

    s = set(('a', 'cc', 'f'))
    s1 = {'a', 'f'}
    print(s.issuperset(s1))
    print(s1.issuperset(s))
    # s1是s的子集,s是s1的父集
    print(s1.issubset(s))
    
    • isdisjoint()

    检测2个集合是否不存在交集,如果存在交集,则返回False

    s1 = {'ljl','wc','xy','zb','lsy'}
    s2 = {'mmf','lsy','syj'}
    s3 = {1, 2}
    print(s1.isdisjoint(s2))
    print(s1.isdisjoint(s3))
    
    • frozenset()

    定义不可变集合

    s = frozenset('a', 'b')
    
  • 相关阅读:
    P3723 【[AH2017/HNOI2017]礼物】
    P4555 【[国家集训队]最长双回文串】
    manacher学习笔记
    多项式学习笔记
    题解 CF1097F 【Alex and a TV Show】
    docker数据卷容器
    python基础学习
    docker监控之cadvisor
    docker监控系统
    ssh配置详解及公私钥批量分发
  • 原文地址:https://www.cnblogs.com/kylinxxx/p/12524726.html
Copyright © 2020-2023  润新知