Heim  >  Artikel  >  Backend-Entwicklung  >  Konvertierung der Python-Wörterbuchliste und For-Schleifenmethode

Konvertierung der Python-Wörterbuchliste und For-Schleifenmethode

高洛峰
高洛峰Original
2017-03-10 18:46:551536Durchsuche

Unterschiede finden

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

Code:

#-*-coding:utf-8-*-
# Originaldaten

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判断


Das obige ist der detaillierte Inhalt vonKonvertierung der Python-Wörterbuchliste und For-Schleifenmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn