차이점 찾기
# 原有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 중국어 웹사이트의 기타 관련 기사를 참조하세요!