python 集合的应用

Posted fanggege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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




以上是关于python 集合的应用的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

金蝶handler中 collection 代码片段理解

Alfred常见使用

VScode 好用插件集合

比较 C# 中的字符串片段并从集合中删除项目