• python入门7(集合)


    1.集合的创建方式

    #集合的创建方式
    '''第一种创建方式使用{}'''
    s={2,3,4,5,5,6,7,7} #集合中的元素不允许重复
    print(s)
    
    '''第二种创建方式使用set()'''
    s1 =set(range(6))
    print(s1,type(s1))
    
    s2=set([1,2,4,5,5,6,7,8,7])
    print(s2,type(s2))
    
    s3=set((1,2,4,4,5,65)) #集合中的元素是无序的
    print(s3,type(s3))
    
    s4=set('python')
    print(s4,type(s4))
    
    s5=set({1,2,3,4,4,5})
    print(s5,type(s5))
    
    #定义一个空集合
    s6={} #会发现是字典类型
    print(type(s6)) #<class 'dict'>
    
    #正确定义一个空集合
    s7=set()
    print(type(s7))

    2. 集合的相关操作

    #集合元素的判断操作
    s={10,20,30,405,60}
    '''集合元素的判断操作'''
    print(10 in s)
    print(100 in s)
    print(10 not in s)
    print(100 not in s)
    
    '''集合元素的新增操作'''
    s.add(80) #add一次添加一个元素
    print(s)
    s.update({200,300,400}) #至少添加一个元素
    print(s)
    s.update([500,600,700])
    s.update((91,92,99))
    print(s)
    
    '''集合元素的删除操作'''
    s.remove(10)
    print(s)
    #s.remove(55) #KeyError: 55
    s.discard(55)
    
    s.pop()
    #s.pop(500) #TypeError: pop() takes no arguments
    s.clear() #集合元素全部清空
    print(s)

    3.集合间的关系

    '''两个集合是否相等(元素相同,就相等)'''
    s={10,20,30,40}
    s2={30,40,20,10}
    print(s==s2)
    print(s!=s2)
    
    '''一个集合是否是另一个集合的子集'''
    s1={10,20,30,40,50,60}
    s2={10,20,30,40}
    s3={10,20,90}
    print(s2.issubset(s1))
    print(s3.issubset(s1))
    
    '''一个集合是否是另一个集合的超集'''
    print(s1.issuperset(s2))
    print(s1.issuperset(s3))
    
    '''两个集合是否含有交集'''
    print(s2.isdisjoint(s3))
    s4={100,200,300}
    print(s2.isdisjoint(s4))

     4.集合中的数学操作

    '''集合中的数学操作'''
    #(1)交集
    s1={10,20,30,40}
    s2={20,30,40,50,60}
    print(s1.intersection(s2))
    print(s1 & s2) #intersection()与&等价,交集操作
    
    #(2)并集操作
    print(s1.union(s2)) #union()与 | 等价,并集操作
    print(s1 | s2)
    
    #(3)差集操作
    print(s1.difference(s2))
    print(s1-s2)
    
    #(4)对称差集
    print(s1.symmetric_difference(s2))
    print(s1 ^ s2)

     5.集合生成式

    #列表生成式
    lst=[ i*i for i in range(10)]
    print(lst)
    
    #集合生成式
    s={i*i for i in range(10)}
    print(s)

     

     

  • 相关阅读:
    存储过程与事务实现转账
    win7创建虚拟无线网络
    .net制作安装包 如何生成快捷方式
    安装EFCodeFirst失败。。。。
    用VS2010自带的Library Package Manager安装EFCodeFirst出现“无法加载一个或多个请求的类型”错误的解决方法
    Java struts2
    Java spring
    Java web
    传输层
    xml
  • 原文地址:https://www.cnblogs.com/liuyi13535496566/p/15652645.html
Copyright © 2020-2023  润新知