• day10 基本数据类型(下)


    一、集合

    1.作用

    去重

    #set的去重只能正对不可变类型,而且是无序的
    l=['a','b',1,'a','a']
    s=set(l)
    s # 将列表转成了集合
    {'b', 'a', 1}
    l_new=list(s) # 再将集合转回列表
    l_new
    ['b', 'a', 1] # 去除了重复,但是打乱了顺序
    
    # 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
    l=[
        {'name':'lili','age':18,'sex':'male'},
        {'name':'jack','age':73,'sex':'male'},
        {'name':'tom','age':20,'sex':'female'},
        {'name':'lili','age':18,'sex':'male'},
        {'name':'lili','age':18,'sex':'male'},
    ]
    new_l=[]
    
    for dic in l:
        if dic not in new_l:
            new_l.append(dic)
    print(new_l)
    # 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
    [
        {'age': 18, 'sex': 'male', 'name': 'lili'}, 
        {'age': 73, 'sex': 'male', 'name': 'jack'}, 
        {'age': 20, 'sex': 'female', 'name': 'tom'}
    ]
    

    2.定义

    在{}内用都逗号分隔多个元素,元素满足以下三个条件

    第一、集合内必须为不可变类型

    第二、集合内元素无序

    第三、集合内没有重复元素,如有会自动去重

    注意:s = {} 默认是空字典,要定义空集合

    3.类型转换

    print(set("aaaaaaccccbcbcbcb"))#不可转换数字类型
    >>>{'b', 'c', 'a'}
    

    4.内置方法

    关系运算

    4.1交集:两者共有的

    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set1 & set2)
    >>>{1, 3}
    

    4.2合集:两者融合去重

    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set1 | set2)
    >>>{1, 2, 3, 4, 5, 7}
    

    4.3差集:某个集合单独有的

    #set1独有的
    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set1 - set2)
    >>>{2, 4}
    
    #set2独有的
    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set2 - set1)
    >>>{5, 7}
    

    4.4对称差集:两个集合各自单独有的组成的集合

    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set2 ^ set1)
    >>>{2, 4, 5, 7}
    

    4.5父子集:判断包含关系

    set1 = {1,2,3,4}
    set2 = {1,3,5,7}
    print(set2 > set1)
    >>>False
    

    5.其他内置方法

    5.1长度,成员运算,循环(略)

    5.2discard(推荐使用),remove

    #Remove an element from a set if it is a member.     
    #If the element is not a member, do nothing.
    #文本解释,删除一个元素,如果不存在do nothing
    s={1,2,3}
    s.discard(4) # 删除元素不存在do nothing
    print(s)
    >>>{1,2,3}
    s.remove(4) # 删除元素不存在则报错
    >>>报错
    

    5.2update

    s={1,2,3}
    s.update({1,3,5})#更新,取合集
    print(s)
    >>>{1, 2, 3, 5}
    

    5.3pop

    s={1,2,3}
    res = s.pop()#默认删除第一个元素,并作为返回值返回
    print(s)
    >>>{2, 3}
    print(res)
    >>>1
    

    5.4add

    s={1,2,3}
    s.add((1,2,3))#只能添加不可变类型
    print(s)
    

    5.5isdisjoint(了解)

    s = {1,2,3,4}
    res=s.isdisjoint({3,4,5,6}) # 两个集合完全独立、没有共同部分,返回True
    print(res)
    False
    

    二 基本数据类型总结

  • 相关阅读:
    android C native测试程序example Android.bp
    C 代码中嵌入汇编(ARM)
    usb device connect kernel log
    MAP_FIXED标志的疑惑
    c misc
    iOS逆向工程
    Demo大全
    iOS开发之文件解压缩库--SSZipArchive
    有时间部分需要了解的架构
    Mac下常用Tool
  • 原文地址:https://www.cnblogs.com/hz2lxt/p/12470541.html
Copyright © 2020-2023  润新知