Rumah > pembangunan bahagian belakang > Tutorial Python > Python之字典列表的转换及for循环的方法

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

高洛峰
Lepaskan: 2017-03-10 18:46:55
asal
1613 orang telah melayarinya

寻找差异

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

代码:

#-*-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判断
Salin selepas log masuk


Atas ialah kandungan terperinci Python之字典列表的转换及for循环的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan