您的位置:首页 > 编程语言 > Python开发

练习-python集合set

2016-04-22 15:53 766 查看
#寻找差异
#要求:原来没有的,新加入;原来有的,更新;新的没有,原来的有,删除原来的
#无需考虑内部元素改变
#数据库中原有
old_dict = {
"#1":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 },
"#2":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 },
"#3":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 }
}

#cmdb 新汇报的数据
new_dict = {
"#1":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 800 },
"#3":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 },
"#4":{ "hostname":"c2", "cpu_count": 2, "mem_capicity": 80 }
}

old = set(old_dict.keys())
new = set(new_dict.keys())
update_set = old.intersection(new)    #交集,输出更新的数据
delete_set = old.symmetric_difference(update_set)   #差集,新的没有,旧的有的,删除
add_set = new.symmetric_difference(update_set)     #差集,新的有,旧的没有,添加
print(update_set)
print(delete_set)
print(add_set)
old_dict.pop("#2")
old_dict.update(new_dict)
print(old_dict)

#执行结果:

{'#1', '#3'}
{'#2'}
{'#4'}
{'#4': {'mem_capicity': 80, 'hostname': 'c2', 'cpu_count': 2}, '#3': {'mem_capicity': 80, 'hostname': 'c1', 'cpu_count': 2}, '#1': {'mem_capicity': 800, 'hostname': 'c1', 'cpu_count': 2}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: