zoukankan      html  css  js  c++  java
  • 014-python基础-set集合

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    注:作为一个无序的集合,sets不记录元素位置或者插入点。因此sets不支持indexing,slicing(切片)

      1 class set(object):
      2     """
      3     set() -> new empty set object
      4     set(iterable) -> new set object
      5     
      6     Build an unordered collection of unique elements.
      7     """
      8     def add(self, *args, **kwargs): # real signature unknown
      9         """
     10         Add an element to a set.     #添加元素
     11         
     12         This has no effect if the element is already present.
     13         """
     14         pass
     15 
     16     def clear(self, *args, **kwargs): # real signature unknown
     17         """ Remove all elements from this set. """     #清除所有元素
     18         pass
     19 
     20     def copy(self, *args, **kwargs): # real signature unknown
     21         """ Return a shallow copy of a set. """            #浅拷贝
     22         pass
     23 
     24     def difference(self, *args, **kwargs): # real signature unknown
     25         """
     26         Return the difference of two or more sets as a new set.    #a中存在,b中不存在
     27         
     28         (i.e. all elements that are in this set but not the others.)
     29         """
     30         pass
     31 
     32     def difference_update(self, *args, **kwargs): # real signature unknown
     33         """ Remove all elements of another set from this set. 从当前集合中删除和B中相同的元素"""
     34         pass
     35 
     36     def discard(self, *args, **kwargs): # real signature unknown
     37         """
     38         Remove an element from a set if it is a member.    移除指定元素,不存在不报错
     39         
     40         If the element is not a member, do nothing.
     41         """
     42         pass
     43 
     44     def intersection(self, *args, **kwargs): # real signature unknown
     45         """
     46         Return the intersection of two sets as a new set.   交集
     47         
     48         (i.e. all elements that are in both sets.)
     49         """
     50         pass
     51 
     52     def intersection_update(self, *args, **kwargs): # real signature unknown
     53         """ Update a set with the intersection of itself and another.   取交集并更新到a中 """
     54         pass
     55 
     56     def isdisjoint(self, *args, **kwargs): # real signature unknown
     57         """ Return True if two sets have a null intersection. 如果没有交集,返回True """
     58         pass
     59 
     60     def issubset(self, *args, **kwargs): # real signature unknown
     61         """ Report whether another set contains this set. 是否是子序列  """
     62         pass
     63 
     64     def issuperset(self, *args, **kwargs): # real signature unknown
     65         """ Report whether this set contains another set.   是否是父序列"""
     66         pass
     67 
     68     def pop(self, *args, **kwargs): # real signature unknown
     69         """
     70         Remove and return an arbitrary set element.  移除元素
     71         Raises KeyError if the set is empty.
     72         """
     73         pass
     74 
     75     def remove(self, *args, **kwargs): # real signature unknown
     76         """
     77         Remove an element from a set; it must be a member.   移除指定元素,不存在保错
     78         
     79         If the element is not a member, raise a KeyError.
     80         """
     81         pass
     82 
     83     def symmetric_difference(self, *args, **kwargs): # real signature unknown
     84         """
     85         Return the symmetric difference of two sets as a new set.   对称差集,a有b没有 + b有a没有  
     86         
     87         (i.e. all elements that are in exactly one of the sets.)
     88         """
     89         pass
     90 
     91     def symmetric_difference_update(self, *args, **kwargs): # real signature unknown
     92         """ Update a set with the symmetric difference of itself and another. """   对称差集,并更新到a中
     93         pass
     94 
     95     def union(self, *args, **kwargs): # real signature unknown
     96         """
     97         Return the union of sets as a new set.             并集
     98         
     99         (i.e. all elements that are in either set.)
    100         """
    101         pass
    102 
    103     def update(self, *args, **kwargs): # real signature unknown
    104         """ Update a set with the union of itself and others.   更新,一般把一个list通过迭代方式更新到set集群中"""
    105         pass

     练习:寻找差异

     1 # 数据库中原有
     2 old_dict = {
     3     "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 },
     4     "#2":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
     5     "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
     6 }
     7    
     8 # cmdb 新汇报的数据
     9 new_dict = {
    10     "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 800 },
    11     "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
    12     "#4":{ 'hostname':c2, 'cpu_count': 2, 'mem_capicity': 80 }
    13 }
    1 old_set = set(old_dict.keys())           #获取数据库中的主键
    2 new_set = set(new_dict.keys())           
    3 
    4 remove_set = old_set.difference(new_set)   #数据库中需要删除的集合
    5 add_set = new_set.difference(old_set)      #数据库中需要增加的集合
    6 update_set = old_set.intersection(new_set) #数据库中需要更新的集合
  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/chhphjcpy/p/6067549.html
Copyright © 2011-2022 走看看