• 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) #数据库中需要更新的集合
  • 相关阅读:
    索引优化策略
    mysql列类型选择
    redis安装
    redis相关面试题
    aop动态代理源码分析
    JVM运行时数据区
    redis应用场景
    JPA相关知识
    技术栈
    linux上安装mysql5.6
  • 原文地址:https://www.cnblogs.com/chhphjcpy/p/6067549.html
Copyright © 2020-2023  润新知