zoukankan      html  css  js  c++  java
  • python09:集合

    一、集合类型 set

    1 作用

    关系运算、去重

    用for也能做关系运算,就是太麻烦。

    l1=[1,2,3,4,5]
    l2=[3,3,4,5,6]
    l=[]
    for x in l1:
        if x in l2:
          l.append(x)
          print(x)
    

    2 定义:在{ }内用逗号分开多个元素,集合内元素有3个特点:

    1.集合内元素均为不可变类型

    2.集合内元素无序

    3.集合内元素没有重复

    定义空集合:s=set(),大括号是默认空字典。

    3 类型转换

    set({1,2,3})
    res=set('helllllllo')
    dict=({'k1':1,'k2':2})
    s=set(dict)
    print(res,s)
    

    4 内置方法——关系运算

    4.1取交集

    friend1={1,2,3,4,5}
    friend2={3,4,5,6,7,8}
    print(friend1 & friend2)
    

    4.2 取并集

    print(friend1 | friend2)
    

    4.3 取差集

    print(friend1 - friend2)
    

    4.4 取对称差集

    print(friend1 ^ friend2)
    

    4.5 父子集

    当一个集合S1是S2的子集时称,S1<S2

    5 内置方法——去重

    特点:只能针对不可变类型,无法保证原来的顺序。

    去重一般自己根据情况编写程序,python不可能提供解决问题的所有方法

    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)
    

    6 其他内置方法

    6.1 .discard() 括号内是要删除的值,若删除的元素不存在不会报错

    s={1,2,3}
    # s.discard(4) # 删除元素不存在do nothing
    # print(s)
    # s.remove(4) # 删除元素不存在则报错
    

    6.2 .update() 添加新集合,.add()添加新元素

    # s.update({1,3,5})
    # print(s)
    # s.add(4)
    # print(s)
    
    

    6.3 .pop()随机删除一个元素

    # s.update({1,3,5})
    # print(s)
    
  • 相关阅读:
    [Clr via C#读书笔记]Cp4类型基础
    [Clr via C#读书笔记]Cp3共享程序集和强命名程
    [Clr via C#读书笔记]Cp2生成打包部署和管理应用程序和类型
    [Clr via C#读书笔记]Cp1CLR执行模型
    试用Markdown来写东西
    字符编码的总结
    常去的网站
    Click Once使用总结
    【LevelDB源码阅读】Slice
    【程序员面试金典】面试题 01.05. 一次编辑
  • 原文地址:https://www.cnblogs.com/Franciszw/p/12482992.html
Copyright © 2011-2022 走看看