zoukankan      html  css  js  c++  java
  • Python基础学习08--集合

    集合—set

    是一个无序的不重复的元素序列。

    集合的特征

    • 集合内数据无序,即无法使用索引和分片
    • 集合内部数据元素具有唯一性,可以用来排除重复数据
    • 集合内的数据,str, int, float, tuple,冰冻集合等,即内部只能放置可哈希数据

    创建集合

    # 创建空集合
    set1 = set()
    print('set1的数据类型为:',type(set1))
    
    # 创建存在数据的集合
    set2 = {1}
    print('set2的数据类型为:',type(set2))
    print('set2 :',set2)
    
    # 创建多数据的集合
    set3 = {1,'1',1,2,3,1}        # 集合中存在3个 1
    print('set3的数据类型为:',type(set3))
    print('set3 :',set3)

    输出结果如下:

    set1的数据类型为: <class 'set'>
    
    set2的数据类型为: <class 'set'>
    set2 : {1}
    
    set3的数据类型为: <class 'set'>
    set3 : {'1', 1, 2, 3}
    
    # 从结果可以看出,集合中只保留1个 1
    # 感兴趣的可以多次执行,会发现set是随机保留 1 个重复数据

    集合的常用方法

    1、add()

        添加元素到集合中,如果元素已存在,则不进行任何操作。

    set4 = {1,2,3,4}
    print('set4-前 :',set4)
    
    set4.add(1)     # 添加set4中已有元素
    print('set4-后 :',set4)
    
    set4.add(0)     # 添加set4中没有的元素
    print('set4-后 :',set4)
    set4-前 : {1, 2, 3, 4}
    set4
    -后 : {1, 2, 3, 4} set4-后 : {1, 2, 3, 4, 5}

    2、update()

        添加元素,且参数可以是列表,元组,字典等

    set4 = {1,2,3,4}
    print('set4-前 :',set4)
    
    set4.update({0:'5'})
    print('set4-后-dict :',set4)
    
    set4.update([-1,5])
    print('set4-后-list :',set4)
    set4-前 : {1, 2, 3, 4}
    set4-后-dict : {0, 1, 2, 3, 4}
    set4-后-list : {0, 1, 2, 3, 4, 5, -1}

    3、remove()

        移除元素,如果元素不存在,则会发生错误

    4、discard()

        移除元素,如果元素不存在,不会发生错误

    5、pop()

        随机移除一个元素

    set4 = {1,2,3,4,5}
    print('set4-前 :',set4)
    
    set4.remove(3)       # 移除元素 3
    print('set4-后-remove :',set4)
    
    set4.discard(1)      # 移除元素 3
    print('set4-后-discard :',set4)
    
    set4.pop()           # 随机移除某元素
    print('set4-后-pop :',set4)
    
    set4.discard(1)     # 移除集合中不存在的元素 1
    print('set4-discard-后 :',set4)
    
    set4.remove(1)       # 移除集合中不存在的元素 1
    print('set4-remove-后 :',set4)
    set4-前 : {1, 2, 3, 4, 5}
    
    set4-后-remove : {1, 2, 4, 5}
    set4-后-discard : {2, 4, 5}
    set4-后-pop : {4, 5}
    
    set4-discard-后 : {4, 5}
    
    KeyError: 1    # remove方法,移除set中不存在的元素,会报错

    6、intersection()

        两个集合的交集

    7、difference()

        两个集合的差集

    8、union()

        两个集合的并集

    9、issubset()

        检查检查一个集合是否为另一个子集

    set5 = {1,2,3,4,5,6}
    set6 = {5,6,7,8,9}
    
    s1 = set5.intersection(set6)    # set5 ∩ set6
    print('set5 ∩ set6 =',s1)
    
    s2 = set5.difference(set6)      # set5 - set6
    print('set5 - set6 =',s2)
    
    s3 = set5.union(set6)           # set5 ∪ set6
    print('set5 ∪ set6 =',s3)
    
    s4 = set5.issubset(set6)        # set5 是 set6的子集
    print('set5 ⊆ set6 ',s4)
    set5 ∩ set6 = {5, 6}
    
    set5 - set6 = {1, 2, 3, 4}
    
    set5 ∪ set6 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    set5 ⊆ set6  False

    集合的数学操作

    set5 = {1,2,3,4,5,6}
    set6 = {5,6,7,8,9}
    
    s1 = set5 - set6
    s2 = set6 - set5
    s3 = set5 + set6
    print('set5 :',set5) print('set6 :',set6) print('set5 - set6 :',s1) print('set6 - set5 :',s2)
    set5 : {1, 2, 3, 4, 5, 6}
    set6 : {5, 6, 7, 8, 9}
    
    set5 - set6 : {1, 2, 3, 4}
    
    set6 - set5 : {8, 9, 7}
    # 从结果中可以看出,集合相减。是指减去集合的交集部分

    TypeError: unsupported operand type(s) for +: 'set' and 'set'
    # 集合不能相加
  • 相关阅读:
    [笔记].Cyclone III编程与配置的几个问题解答
    [笔记].活用Quartus II内置模板,快速输入HDL代码、TimeQuset约束及tcl语句等
    [笔记].关于在Quartus II 11.0无法正常使用SignalTap的解决方法
    [Altera在线教学].tcl介绍 与 Quartus II tcl脚本
    [笔记].关于使用Nios II Flash Programmer下载后无法从EPCS启动的一种解决方法;sof+elf>flash>hex>jic
    [笔记].菜农M0助学板之GPIO按键之边沿检测小练(寄存器操作方式)
    [笔记].QII 11.1文本编辑器,新增了“Autocomplete text”功能
    [问答].Nios II、MIPS、Microblaze、ARM这几个嵌入FPGA中的硬核,哪个运用广、前景好?
    [Altera在线教学].IP复用及其实现方法
    [资料].Altera FPGA/CPLD Allegro原理图库
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/10352806.html
Copyright © 2011-2022 走看看