zoukankan      html  css  js  c++  java
  • python ==》 集合

    集合:

      定义:

        由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key值。

        集合的目的:将不同的值存放到一起,不同的集合间用来做关系运算。

    定义集合
    字典是可变类型 列表也是可变类型 所以 集合里面不能有字典和列表的存在
    集合:可以包含多个元素,用逗号分割开,每一个元素都必须是不可变类型。
    集合遵循的两个原则:1. 没有重复的元素 2.无序 3.每个元素必须是不可变类型
    取值  因为无序  ,所以  并不能用下标取值 (即索引取值)。
    从集合里面取值,也很少有这种需求,集合主要做: 关系运算。

    优先掌握
    in 和 not in
    pythons = {'zxc','asd','qwe','zbk'}
    print('zzz'in pythons)

    |并集:所有学员 #从两个 字典里做关系运算。
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    s =pythons | linuxs
    print(s)
    set1 ={1,2,3,4,5}
    set2 ={1,2,3}

    内置地方法
    print(pythons.union(linuxs)) #并集
    print(pythons.intersection(linuxs)) #交集
    print(pythons.difference(linuxs)) #差集
    print(linuxs.difference(pythons)) #差集
    print(pythons.symmetric_difference(linuxs)) #对称差集
    print(set1.issubset(set2)) #set1 是set2 的子集吗?

    掌握
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    linuxs.add('qqq') #set类型的集合是可变类型 ,只能添加可变类型
    print(linuxs)


    res =linuxs.pop() #删除要有个返回值 不用指定参数,随机删除
    print(res)

    linuxs.remove('zxc') #指名道姓的删除 特点:元素不存在报错 没有返回值 单纯的删除
    print(linuxs)

    linuxs.discard('zxc11111') #指名道姓的删除 特点:元素不存在不报错 没有返回值 单纯的删除
    print(linuxs)


    了解
    linuxs = {'zxc','zzz','aaa'}
    linuxs.update({'zbk','jkl','zxc'})#更新 没有就 加上
    print(linuxs)

    linuxs.clear() #清除
    print(linuxs)

    s=linuxs.copy() #复制
    print(s)

    set1 = {1,2,3}
    set2 = {3,4,5}
    print(set1.difference_update(set2) ) #求差集 并且更新
    print(set1)



    &交集 : 求二者共同的部分。
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    s = pythons & linuxs
    print(s)

    -差集: 只报名 pythons 。
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    s = pythons - linuxs
    print(s)
    print(linuxs - pythons)


    ^对称差集:没有同时报名python和linuxs。
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    s = pythons ^ linuxs
    print(s)


    > < >= <= 包含关系
    set1 ={1,2,3,4,5}
    set2 ={1,2,3}
    print(set1>set2)


    for 取值 无序
    pythons = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    for i in pythons:
    print(i)


    解压
    pythons,*_ = {'zxc','asd','qwe','zbk'}
    linuxs = {'zxc','zzz','aaa'}
    print(pythons)

    in: 字符串,列表,元组,字典,集合
    for:字符串,列表,元组,字典,集合
    解压:字符串,列表,元组,字典,集合

    去重
    msg = 'hello'
    msg = [1,2,'zxc','asd']
    s = set(msg)
    print(s)

    '''
    数据类型的总结:
    数字
    字符串
    元组
    字典

    按照存值个数:
    1个:数字,字符串
    多个: 列表,元组,字典

    按照可变不可变:
    可变:列表 字典
    不可变:数字 字符串 元组

    按照访问方式:
    num=1
    数字只能有名字访问
    s = zxc'

    直接访问: 数字
    索引: 字符串,列表,元组 ===》 序列类型
    映射: 字典 (key)




    '''
  • 相关阅读:
    RecyclerView的通用适配器
    Service由浅到深——AIDL的使用方式
    Android热修复——Tinker的集成
    ListView ,GridView 通用适配器
    Android开发者必知的5个开源库
    Android下强制打开键盘
    Android下强制打开软键盘
    怎么监听Android软键盘的打开和关闭
    【转】ListView 3D翻页效果
    Android 手动显示和隐藏软键盘
  • 原文地址:https://www.cnblogs.com/zhongbokun/p/7217728.html
Copyright © 2011-2022 走看看