我有一个列表和一本字典.我必须检查和打印那些值谁是存在于两个容器.我正在尝试下面的代码:


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']

相关内容

最新更新