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

    def difference(self, *args, **kwargs): 
    s1 = set([1,2,3,4,5])
    print (s1)

    s2 = set([3,4,6])
    print (s2)

    s3 = s1.difference(s2)
    print (s3)
    结果:

    {1, 2, 3, 4, 5}
    {3, 4, 6}
    {1, 2, 5}

     结论:difference计算在s1集合中但是不在s2集合中的内容,并且生成一个新的集合s3,原来s1,s2不变

    def difference_update(self, *args, **kwargs): 
    s1 = set([1,2,3,4,5])
    s2 = set([3,4,6])
    s4 = s1.difference_update(s2)
    print (s1)
    print (s2)
    print (s4)
    结果:

    {1, 2, 5}
    {3, 4, 6}
    None

     结论:difference_update计算了在s1集合中但是不在s2集合中的内容,并且更新原有的集合s1,没有生成新的集合(s4=None)

    def intersection(self, *args, **kwargs):
    s1 = set([1,2,3,4,5])
    s2 = set([1,2,6,7])

    s3 = s1.intersection(s2)
    print (s3)
    print ("==================")
    print (s1)
    print (s2)
    结果:

    {1, 2}
    ==================
    {1, 2, 3, 4, 5}
    {1, 2, 6, 7}

     结论:取交集

    def symmetric_difference(self, *args, **kwargs):
    s1 = set([1,2,3,4,5])
    s2 = set([1,2,6,7])

    s3 = s1.symmetric_difference(s2)
    print (s3)
    print ("==================")
    print (s1)
    print (s2)
    结果:

    {3, 4, 5, 6, 7}
    ==================
    {1, 2, 3, 4, 5}
    {1, 2, 6, 7}

     结论:两个集合里面不匹配的项

    配置库的写法:

    s1 = set([1,2,3,4,5])
    s2 = set([1,2,6,7])

    ret_join = s1.intersection(s2)
    ret_del = s1.difference(ret_join)
    ret_add = s2.difference(ret_join)

    print (ret_join)
    print (ret_del)
    print (ret_add)

    {1, 2}
    {3, 4, 5}
    {6, 7}



  • 相关阅读:
    170110-学习MoveIt!
    12.29-ros-gazebo高级
    12.27-ros-gazebo基础
    4.9-Simulation in gazebo or webots
    6.28-机器人模拟器Gazebo基础
    4.8-URDF in ROS
    Win32双缓冲画图原理
    Win32 计时器
    最简化的DirectX 11开发环境的配置 VS2010
    VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  • 原文地址:https://www.cnblogs.com/python-study/p/5444957.html
Copyright © 2011-2022 走看看