python之字典列表的转换及for循环的方法

寻找差异

# 原有dict
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 }
}
# 新的数据
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 }
}
需要删除:?
需要新建:?
需要更新:?

代码:

#-*-coding:utf-8-*-# 原有数据

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 }
}
# 新的数据
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 = set(old_dict.keys())
update_list = list(old_set.intersection(new_dict.keys()))
for i in update_list:
if cmp(old_dict[i],new_dict[i]) != 0:
update_list.remove(i)
#print update_list
new_list = []
del_list = []
for i in new_dict.keys():
if i not in update_list:
new_list.append(i)
for i in old_dict.keys():
if i not in update_list:
del_list.append(i)
print update_list
print new_list
print del_list
运行结果:
[‘#3’]
[‘#1’, ‘#4’]
[‘#2’, ‘#1’]
本节使用了字典与列表的转换,列表移除某个值,for循环,cmp内置函数,if判断

以上就是python之字典列表的转换及for循环的方法的详细内容,更多请关注 第一php社区 其它相关文章!

Posted in 未分类

发表评论