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'
    # 集合不能相加
  • 相关阅读:
    EditText被输入法覆盖的解决方法
    计算屏幕大小
    [转]在adt-bundle-linux建立工程找不到ADB & R文件
    3.18 迷茫的方向
    安卓笔记:Fragment
    安卓学习笔记:转Android LayoutInflater详解
    Android布局大全(转)
    第二章 Android基本应用开发与解析
    Datetime中offset-naive与offset-aware时间的计算
    Python日期操作datetime
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/10352806.html
Copyright © 2011-2022 走看看