zoukankan      html  css  js  c++  java
  • 集合的内置方法

    1.作用
      1.1:关系运算

      1.2:去重

    l=['a','b',1,'a','a']
    print(list(set(l)))#无法保证顺序
    
    # 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
    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)
    # 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
    去重代码

    2.定义:在{}内用逗号分隔开多个元素,多个元素满足以下三个条件
      集合内元素必须是不可变类型
      集合内元素无序
      集合内元素没有重复

      s = {1,2} #s = set({1,2})
      了解知识点:{}默认定义是空字典,想要定义空集合要用set=({})

    3.类型转换
      set({1, 2, 3})
      res = set('hsdaasd')
      print(res)

      print(set([1,1,1,1,1]))
      print(set([1,1,1,[11,22]]))#报错
      print(set({'k1':1,'k2':2}))#取的是key

    4.内置方法

    frineds1 = {'a','b','c'}
    friends2 = {'b','d','e'}
    
    # 4.1 取交集:两者共同的好友
    print(friends1 & friends2)
    print(friends1.intersection(friends2))
    
    # 4.2 取并集/合集:两者所有的好友
    print(friends1 | friends2)
    print(friends1.union(friends2))
    
    # 4.3 取差集:取friends1独有的好友
    print(friends1 - friends2)
    print(friends1.difference(friends2))
    
    # 取friends2独有的好友
    print(friends2 - friends1)
    print(friends2.difference(friends1))
    
    # 4.4 对称差集: 求两个用户独有的好友们(即去掉共有的好友)
    print(friends1 ^ friends2)
    print(friends1.symmetric_difference(friends2))
    
    # 4.5 父子集:包含的关系
    s1={1,2,3}
    s2={1,2,4}
    # 不存在包含关系,下面比较均为False
    print(s1 > s2)
    print(s1 < s2)
    
    # s1={1,2,3}
    # s2={1,2}
    print(s1 > s2) # 当s1大于或等于s2时,才能说是s1是s2他爹
    print(s1.issuperset(s2)) #s1 >s2
    print(s2.issubset(s1)) # s2 < s1  =>True
    
    s1={1,2,3}
    s2={1,2,3}
    print(s1 == s2) # s1与s2互为父子
    print(s1.issuperset(s2))
    print(s2.issuperset(s1))
    集合的几个简单操作

      其他内置方法

    # 长度len
    # 成员运算 in 和not in
    # 循环
    
    s={1,2,3}
    # 需要掌握的内置方法1:discard
    s.discard(4) # 删除元素不存在do nothing
    print(s)
    s.remove(4) # 删除元素不存在则报错
    
    # 需要掌握的内置方法2:update
    s.update({1,3,5})
    print(s)
    
    # 需要掌握的内置方法3:pop
    res=s.pop() #括号里不能填值  随机删除
    print(res)
    
    # 需要掌握的内置方法4:add
    s.add(4)
    print(s)
    几个需要掌握的内置方法
  • 相关阅读:
    什么是“开放构造类型”,“封闭构造类型”
    代码整洁整洁之道读书笔记 2
    学习 WCF By Visual Studio 2010 (1)起步“全双工”
    代码整洁整洁之道读书笔记 1
    学习 WCF By Visual Studio 2010 (2) 宿主
    持久层通用组件设计与范例,写给某孩子(基于JDBC)
    [zz]JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转, JS引用JS
    web下vs2008+crystal report 不预览直接打印
    用SQL语句删除重复记录
    Gridview 添加行.
  • 原文地址:https://www.cnblogs.com/bk134/p/12480989.html
Copyright © 2011-2022 走看看