• python 集合的应用


    应用场景

    磁盘资产采集信息,与数据库中的磁盘信息需要进行对比,再资产入库,对于采集的多余的插巢属于新增的磁盘,对于相同的插巢可能是磁盘容量变更,对于数据库中有但是采集信息中没有的插巢是资产中删除的磁盘。

    原始信息

    #1/#2/#4/#4 等为插巢信息,需要比对的就是插巢的增加/删除/不变的信息

    采集信息

    disk_info = {
    '#1': {'factory': 'x1', 'model': 'x2', 'size': 600},
    '#2': {'factory': 'x1', 'model': 'x2', 'size': 500},
    '#3': {'factory': 'x1', 'model': 'x2', 'size': 600},
    '#4': {'factory': 'x1', 'model': 'x2', 'size': 500},
    }

    数据库信息

    disk_queryset = [
    {'slot': '#1', 'factory': 'x1', 'model': 'x2', 'size': 200},
    {'slot': '#2', 'factory': 'x1', 'model': 'x2', 'size': 1000},
    {'slot': '#6', 'factory': 'x1', 'model': 'x2', 'size': 500},
    ]

    数据处理

    先把插巢信息提取出来,转化成插巢的集合。

    disk_set = set(disk_info)           #字典中的key 元素组成集合
    print(disk_set,type(disk_set))

    disk_queryset_set = set(row['slot'] for row in disk_queryset) #for 循环列表,每个元素字典取值slot作为set元素,最后组成集合
    print(disk_queryset_set,type(disk_queryset_set))


    #求相同
    r1 = disk_set & disk_queryset_set
    #字典有列表没有
    r2 = disk_set - disk_queryset_set
    #列表有字典没有
    r3 = disk_queryset_set - disk_set

    
    


  • 相关阅读:
    js&jquery避免报错的方法
    if-else用法
    js-form表单元素的自定义属性
    a标签
    jQuery知识集锦
    JDK动态代理
    hibernate之多对一单向关联
    STL算法设计理念
    计算机常识--win7 删除文件、拒绝訪问等等,所有提示权限不够 解决的方法
    大话设计模式C++实现-第8章-工厂方法模式
  • 原文地址:https://www.cnblogs.com/fanggege/p/10325853.html
Copyright © 2020-2023  润新知