PHP前端开发

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

百变鹏仔 3小时前 #Python
文章标签 字典

寻找差异

# 原有dictold_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_listprint new_listprint del_list运行结果:['#3']['#1', '#4']['#2', '#1']  本节使用了字典与列表的转换,列表移除某个值,for循环,cmp内置函数,if判断