zoukankan      html  css  js  c++  java
  • python3:序列_集合(常用基础知识)

    '''
    集合用于保存不重复元素,有可变集合(set)和不可变集合(frozenset)
    集合最好的应用是去掉重复元素,因为集合中的每个元素都是唯一的。
    
    本篇只汇总set的基础信息
    set集合也是无序的,所以输出和创建的顺序可能不一样
    '''
    
    
    # 创建集合
    print('空集合:',set())
    
    s1 = {'1集合创建','2','3aaa'}
    print(s1)
    
    s2 = set('字符串创建集合')
    print('字符串转为集合:',s2)
    
    s3 = set(['列表','测试','','','',''])
    print('列表转为集合:',s3)
    
    s4 = set(('元组','测试','创建','集合'))
    print('元组转为集合:',s4)
    
    aa = set(range(1,11,2))  #创建随机数集合
    print(aa)
    
    #添加元素
    s1.add('添加')
    print('s1空集合添加元素',s1)
    
    #删除元素
    s2.remove('')
    print('remove 删除指定元素后:',s2)
    print('pop随机删除的元素:',s2.pop(),'
    pop随机删除元素后:',s2)
    
    #清空元素
    s1.clear()
    print('s1清空后',s1)
    
    
    # 集合的交集
    print('集合的交集:',s2 & s3) #同时存在于二者的元素
    # 集合的并集
    print('集合的并集:',s2 | s3) #二者中所有的元素,去重显示
    # 集合的差集
    print('集合的差集:',s2 - s3) #存在于前者不存在于后者的元素
    
    
    
    #检查集合成员
    print('' in s2)  #in 在,not in 不在
    print('' in s2)  #in 在,not in 不在
    
    
    #序列长度、最大值、最小值;%d数字替代符,n换行符
    print("序列长度:%d
    序列最大值:%r
    序列最小值:%r" %(len(aa),max(aa),min(aa)))
    
    #除了对元素的顺序和内容不可添加、修改、删除外,集合有很多同列表一样的功能
    #遍历集合
    print('遍历集合:')
    for item in aa:
        print(item)
    
    
    shuzi = (128,512,309)
    daihao = ['SY','JX','JN']
    jiancheng = ['SY','JX','JN','SP','TX']
    xingzuo = ['双鱼','巨蟹','金牛','水瓶','天蝎']
    
    #创建集合
    di11 = set(zip(shuzi,daihao))   #生成集合
    di12 = set(zip(jiancheng,xingzuo))    #生成集合,
    print('di11:',di11)
    print('di12:',di12)
    
    
    dd1 = set(zip(shuzi,daihao))   #生成:数字、代号集合
    dd2 = set(zip(jiancheng,xingzuo)) # 生成:代号、星座集合
    print('dd1:',dd1)
    print('dd2:',dd2)
    
    #集合推导式:(用列表创建的表达式依然可成功创建,******注意:记得加上set()******)、、
    
    
    dd11 = {j for j in zip(shuzi,daihao)}   #用推导式生成
    print('dd11',dd11)
    
    
    #生成指定范围的数值集合
    import random
    d = {random.randint(11,20)*2 for i in  range(1,7)} #random.randint(30,90)*2:元素表达式,i:针对后面range的循环变量
    print('d:',d)
    
    #生成指定需求的集合,如d的5折
    e = {int(x*0.5) for x in d} #x*0.5:元素表达式;x:d中的元素,i的长度为d的长度
    print('e:',e)
    
    #生成符合条件的集合,如f集合需要0.5的d元素,且0.5d元素依然为偶数
    f = {int(x*0.5) for x in d if int(x*0.5)%2==0}
    #x*0.5:元素表达式;x:d中的元素  i的长度为符合条件的列表的长度,也可以写为元组 len(tuple(int(x*0.5) for x in d))
    print('f:',f)
    
    #二维集合
    #使用推导式创建二维集合(用列表创建的表达式依然可成功创建)
    g1 = {tuple(random.randint(3,8) for j in range(4)) for i in range(1,4)}
    print('g1',g1)
    
    g2 = set(tuple(random.randint(3,8) for j in range(4)) for i in range(1,4))
    print('g2',g2)
    
    # g3 = {[random.randint(3,8) for j in range(3)] for i in range(1,4)}
    # print(g3)  #失败,提示:TypeError: unhashable type: 'list',因为列表不可哈希的,元组可哈希。
  • 相关阅读:
    机电传动控制第五周作业
    机电传动控制第四周作业
    机电传动控制 第三周作业
    机电传动控制第二周作业
    机电传动控制 第一周作业
    第一小组咖啡机器人最终结果
    第一组咖啡机器人界面设计1月6日进展
    第一组咖啡机器人界面设计一阶段进展
    实时软件控制第二次作业
    git的学习以及使用
  • 原文地址:https://www.cnblogs.com/jxba/p/9872504.html
Copyright © 2011-2022 走看看