dict = {1: {'host': 'vm224', 'vmImag': '182356_HFS', 'Img_type': 'User'},
2: {'host': 'vm768', 'vmImag': '182356_HFS', 'Img_type': 'User'}
3: {'host': 'vm333', 'vmImag': '182356_HFS', 'Img_type': 'User'}}
list1 =['vm224', 'vm768']
for i in list1:
for key in dict.keys():
if dict[key]['host'] in list1:
print(hosts
预期输出:应该是'vm224', 'vm768'。因为这两个主机是匹配list1和字典的。
我想确认一下我写的是否正确。由于
为了简化代码,首先使用字典中所有可用的主机创建set
。然后用以下集合过滤list1
:
dct = {
1: {"host": "vm224", "vmImag": "182356_HFS", "Img_type": "User"},
2: {"host": "vm768", "vmImag": "182356_HFS", "Img_type": "User"},
3: {"host": "vm333", "vmImag": "182356_HFS", "Img_type": "User"},
}
list1 = ["vm224", "vm768"]
all_hosts = {d["host"] for d in dct.values()}
filtered_list = [v for v in list1 if v in all_hosts]
print(filtered_list)
打印:
['vm224', 'vm768']