• python基础学习——集合


    一、集合的相关定义

    1、集合set,可迭代对象

          由不同的元素组成,无序排列、不可变数据类型。由大括号{},以逗号分隔方式定义

    2、集合的内置方法

    普通集合属于可变数据类型,如果属性为:l_s=frozenset(linux_1)就为不可变的数据类型

        2.1 add添加元素,只能存放一个元素

        2.2 clear清空元素

        2.3 copy浅拷贝

        2.4 pop随机删除元素

        2.5 remove("s")删除指定元素,且删除不存在的元素会报错

        2.6 discord("sfr")删除指定元素,且删除不存在元素时不报错

        2.7 difference_update,两个集合不同元素,且更新集合中的元素

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    p_s.difference_update((l_s))
    print(p_s)
    
    
    结果:
    {222, 'nana'}

        2.8 isdisjoint,两个集合之间不存在交集时,返回Frue,否则False

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.isdisjoint((l_s)))
    
    False

        2.9 issubset,判断是否是包含关系,子集关系

    python_1=["baby","123"]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.issubset((l_s)))   #p_s是否是l_s的子集
    
    结果:
    True

        2.10 issuperset,判断是否是包含关系,父集关系

    python_1=["baby","123"]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.issuperset((l_s)))   #p_s是否是l_s的父集
    
    False

        2.11update更新指定的集合中的元素,可以同时更新多个值(元组、列表)

    python_1=["baby","123"]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    p_s.update(l_s)
    p_s.update((3,4,"444"))
    print(p_s)  

    3、集合关系

         3.1交集

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.intersection(l_s))
    print(p_s&l_s)
    
    结果:
    {'baby', '123'}

         3.2并集,不更新集合本身的数据

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.union(l_s))
    print(p_s|l_s)
    
    结果:
    {'baby', '娜娜', '中华', 'nana', 999, '123', 222}

         3.3差集

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.difference(l_s))
    print(p_s-l_s)
    
    结果:
    {'nana', 222}

         3.4交叉补集

    python_1=["nana","baby","123",222]
    linux_1=["娜娜","baby","123",999,"中华"]
    p_s=set(python_1)
    l_s=set(linux_1)
    
    print(p_s.symmetric_difference(l_s))
    print(p_s^l_s)
    
    结果:
    {'娜娜', 999, 'nana', '中华', 222}
  • 相关阅读:
    Java线程面试题 Top 50 (转载)
    Java并发编程:volatile关键字解析
    转:【创龙TMS320C6748开发板试用】相关软件的安装与基本设置+CCS安装失败分析
    Linux格式化分区报错Could not start /dev/sda No such file or directory 解决办法
    转:用 git 下载 uboot 源码
    转:堆(heap)和栈(stack)有什么区别??
    转:数字信号处理的学习资源
    转:VC中WORD,DWORD,unsigned long,unsigned short的区别(转)
    转:ASCII码表_全_完整版
    转:CFile::Seek
  • 原文地址:https://www.cnblogs.com/xucuiqing/p/11537704.html
Copyright © 2020-2023  润新知