python 集合的操作

'''
                          python 集合
集合:
(1).集合是Python语言提供的内置数据结构之一
(2).与列表、字典一样都属于是可变序列
(3).集合是没有value的字典,也是用花括号{}创建
(4).元素之间用逗号分隔
(5).元素不允许重复,重复了不会报错但只会输出重复中的一个元素
(6).集合中的元素是无序的

一.集合的创建方式
1.使用花括号创建{}
    eg:   sheng = {"shi",1,2,2,23,1}   ###元素不允许重复,重复了不会报错但只会输出重复中的一个元素
    输出: {1, 2, 'shi', 23}

2.使用内置函数set()创建
(1)将列表和range()转换成集合
    eg1:  s1 = set([23,435,6,2,1])
         print(s1,type(s1))

    输出:{0,1, 2, 6, 435, 23} 
    eg2:  s1 = set(range(10))
            print(s1,type(s1))
    输出: {1,2,3,4,5,6,7,8,9} 

(2)将元组转换成集合
    eg: s2 = set((12,35,6,87,1))
        print(s2,type(s2))

    输出: {1, 35, 6, 12, 87} 

(3)将字符串序列转换成集合
    eg: s3 = set("python")
        print(s3,type(s3))

    输出:{'y', 'h', 'o', 't', 'p', 'n'} 

(4)使用set()创建集合
    eg: s4 = set({1,243,54,65,2})
        print(s4,type(s4))

    输出:{65, 2, 1, 243, 54} 

(5)创建一个空集合set()
    eg: print(set())

    ####不能使用{}来直接定义一个空集合
    eg :s5 = {}
        print(s5,type(s5))
    输出: {} 

二.集合的增、删、改操作
1.查找集合中是否存在该元素
    语法格式1: 元素  in  集合名
    语法格式2: 元素 not in 集合名

2.集合中元素的新增
(1)向集合中添加一个元素
    语法格式: 集合名.add(元素)
        eg: sheng = {1,2,3,4,5,6,7}
            sheng.add(10)
            print(sheng)
        输出:  {1, 2, 3, 4, 5, 6, 7, 10}

(2)向集合中添加一个或多个元素
    语法格式: 集合名.update({元素1,元素2,元素3,.....})     ###  update()里面放列表、元组、range()也可以
        eg: sheng = {1,2,3,4,5,6,7}
            sheng.update({8,9,10})
            print(sheng)
        输出: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

3.集合中元素的删除
(1)一次删除一个元素,调用方法remove(),discard()
    语法格式: 集合名.remove(元素)     或者    集合名.discard(元素)
    eg: sheng = {1,2,3,4,5,6,7}
        sheng.remove(3)
        print(sheng)
    输出: {1, 2, 4, 5, 6, 7}
###如果删除的元素在集合中不存在,则会抛出error
    eg: sheng = {1,2,3,4,5,6,7}
        sheng.discard(6)
        print(sheng)
    输出: {1, 2, 3, 4, 5, 7}
###如果删除的元素在集合中不存在,并不会抛出error

(2)任意删除集合中的一个元素,调用pop()方法
    语法格式: 集合名.pop()   ## pop()不能有参数
        eg: sheng = {1,2,3,4,5,6,7}
            sheng.pop()
            print(sheng)
        输出: {2, 3, 4, 5, 6, 7}

(3)清空集合中的元素,调用方法clear()
    语法格式: 集合名.clear()
        eg: sheng = {1,2,3,4,5,6,7}
            sheng.clear()
            print(sheng)
        输出: set()

三.集合之间的关系
1.判断俩个集合是否相等(元素相同就相等)
    语法格式: 集合1 == 集合2    或者  集合1 != 集合2
        eg: s1 = {2,3,4,5,6}
            s2 = {6,5,4,3,2}
            print(s1 == s2)    ### 判断俩个集合是否相等 与集合中的元素顺序无关。
            print(s1 != s2)

        输出:  True
              False

2.一个集合是否是另一个集合的子集,通过方法issubset()
    语法格式: 集合1.issubset(集合2)     ## 解释: 集合1 是 集合2 的子集
        eg: s1 = set(range(10))
            s2 = {1,2,3,4,5}
            s3 = {7,8,9,10,11}
            print(s2.issubset(s1))
            print(s3.issubset(s1))
        输出: True
             False

3.一个集合是否是另一个集合的超集
    语法格式: 集合1.issuperset(集合2)     ## 解释: 集合1 是 集合2 的超集
        eg: s1 = set(range(10))
            s2 = {1,2,3,4,5}
            print(s1.issuperset(s2))
            print(s2.issuperset(s1))

4.判断俩个集合是否有交集
    语法格式: 集合1.isdisjoint(集合2)     ##解释: 如果有交集则返回false  没有交集则返回true。   isdisjoint: 没有交集
        eg: s1 = set(range(10))
            s2 = {1,2,3,4,5}
            s3 = {10,11,12,13}
            print(s1.isdisjoint(s2))    ## false  有交集
            print(s1.isdisjoint(s3))    ## true  没有交集

        输出: False
             True

四.集合的数学操作
1.交集
    语法格式:集合1.intersection(集合2)    等价于   集合1 & 集合2
        eg: s1 = set(range(10))
            s2 = {1,2,3,4,5}
            print(s1.intersection(s2))      或者  print(s1 & s2)
        输出: {1, 2, 3, 4, 5}

2.并集
    语法格式:集合1.union(集合2)   等价于   集合1 |  集合2
        eg: s1 = set(range(6))
            s2 = set(range(6,11))
            print(s1.union(s2))      或者   print(s1 | s2)
        输出: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

3.差集
    语法格式: 集合1.difference(集合2)  等价于  集合1-集合2
    解释: 用 集合1 中的元素与 集合2 中的元素相减 ,相同的去掉,不同的只留 集合1 中的元素
        eg: s1 = {10,20,30,40}
            s2 = {30,40,50,60}
            print(s1.difference(s2))    或者 print(s1-s2)
        输出: {10, 20}

4.对称差集
    语法格式:集合1.symmetric_difference(集合2)     等价于  集合1^集合2
    解释: 去除俩个集合相同部分,保留俩个集合不同部分。 可以理解成先将俩个集合作交集,再作并集
        eg: s1 = {10,20,30,40}
            s2 = {30,40,50,60}
            print(s1.symmetric_difference(s2))    或者  print(s1^s2)
        输出:{10, 50, 20, 60}


五.集合生成式 ## 与列表生成式差不多,只需将其[]改成{}就可以
    eg: sheng = [i*i for i in range(6)]
        print(sheng,type(sheng))
    输出: [0,1,4,9,16,25] 

    eg: sheng = {i*i for i in range(6)}
        print(sheng,type(sheng))
    输出: {0,1,4,9,16,25} 



'''

你可能感兴趣的:(python,python)