zoukankan      html  css  js  c++  java
  • Python集合

    1集合是一个无序的,不重复的数据组合,它的主要作用如下(set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key):

      去重,把一个列表变成集合,就自动去重了

      关系测试,测试两组数据之前的交集、差集、并集等关系

    2(去重)

    1 # -*- coding:utf-8 -*-
    2 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    3 print(type(s))
    4 print(s)

    输出结果:

    1 <class 'set'>
    2 {1, 2, 3, 4, 5, 'tin', 12, ('tj', 120)}

    (关系测试)

    交集:

    1 # -*- coding:utf-8 -*-
    2 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    3 s2={123,23,4,5,6,7,8,}
    4 #交集,把相同的元素取出来
    5 print(s2.intersecti(s))     #或 print(s2 & s)
    
    

    输出结果:

    {4, 5}

    并集

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}  #并集
    3 print(s2.union(s))     #或  print(s2 | s)

    输出结果:

    {1, 2, 3, 4, 5, 6, 7, 8, ('tj', 120), 12, 'tin', 23, 123}

    差集

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}   #差集
    3 print(s2.difference(s))  # 或 print(s2-s)

    输出结果:

     1 {6, 7, 8, 23, 123} 

    对称差集

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}    
    3 print(s2.symmetric_difference(s))   #或 print(s2 ^ s)

    输入结果:

     {1, 2, 3, 6, 7, 8, 12, 'tin', 23, ('tj', 120), 123} 

    随机删除元素:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 print(s2.pop())   #pop 随机删除元素

    输出结果:4

    删除元素(可以任意删除一项):

    1 s2={123,23,4,5,6,7,8,}
    2 s.remove(2)
    3 print(s)

    输出结果:

    {1, 3, 4, 5, 'tin', 12, ('tj', 120)}

    父集:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 s.remove(2)
    4 print(s)
    5 print(s2.issuperset(s))

    输出结果:

    1 {1, 3, 4, 5, 12, ('tj', 120), 'tin'}
    2 False

    子集:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 s.remove(2)
    4 print(s)
    5 print(s2.issubset(s))

    输出结果:

    1 {1, 3, 4, 5, 'tin', 12, ('tj', 120)}
    2 False

    对称并集:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 s.remove(2)
    4 print(s)
    5 s2.difference_update(s)
    6 print(s2)

    输出结果:

    1 {'tin', 1, 3, 4, 5, ('tj', 120), 12}
    2 {6, 7, 8, 23, 123}

    添加元素:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 s2.add(18)
    4 print(s2)
    5 s.add(21)
    6 print(s)

    输出结果:

    1 {4, 5, 6, 7, 8, 18, 23, 123}
    2 {('tj', 120), 1, 2, 3, 4, 5, 12, 'tin', 21}

    合并多项元素:

    1 s={1,2,3,4,5,1,2,12,"tin",("tj",120),"tin",("tj",120)}
    2 s2={123,23,4,5,6,7,8,}
    3 s.update(s2)
    4 print(s)

    输出结果:

    {1, 2, 3, 4, 5, 6, 7, 8, 12, 23, 'tin', 123, ('tj', 120)}
  • 相关阅读:
    unix domain socket 浅析
    Python单元测试的Mock是怎么回事
    三招搞定你的ubuntu安全问题
    思考一次整体调整Python项目规范性的过程
    不可缺少的程序埋点
    python + unittest + request + parameterized 参数化遇到中文名称testcase不显示的问题
    【CDH】cdh搭建遇到的坑和解决过程
    [Linux系统]安装时出现Requires: libc.so.6(GLIBC_2.17)(64bit) Requires: systemd Requires: libstdc++.so时解决办法
    【Linux命令】在Linux服务器上与windows通过SCP命令互传文件时出现的问题排查过程
    【微信公众号】记一次微信活动微信公众号分享没有LOGO的解决心路历程
  • 原文地址:https://www.cnblogs.com/zqxqx/p/8013212.html
Copyright © 2011-2022 走看看