此词典将农场动物存储为键,并将其位置存储为值。
id_name_dict = {
'cat': 'barn', 'dog': 'field', 'chicken': 'coop',
'sheep': 'pasture', 'horse': 'barn', 'cow': 'barn'
}
此列表存储了我想知道其位置的农场动物的名字
wanted_farm_animals = ['cat,', 'dog', 'horse']
所需的输出是一个新的列表,其中包含了wanted_farm_animals位置
n = ['barn', 'field', 'barn']
这是我尝试执行的代码
n = []
for animal, location in id_name_dict.items():
for a in wanted_farm_animals:
if a == animal:
n.append(location)
print(n)
但是,输出不完整。只有
['field', 'barn']
如何获得正确的所需输出?
答案 0 :(得分:0)
简单的列表理解如何?
id_name_dict = {
'cat': 'barn', 'dog': 'field', 'chicken': 'coop',
'sheep': 'pasture', 'horse': 'barn', 'cow': 'barn'
}
wanted_farm_animals = ['cat', 'dog', 'horse']
result = [v for k,v in id_name_dict.items() if k in wanted_farm_animals]
# ['barn', 'field', 'barn']
答案 1 :(得分:0)
您可以将wanted_farm_animals
列表映射到绑定到dict.get
字典的id_name_dict
方法:
n = list(map(id_name_dict.get, wanted_farm_animals))
通过使用dict.get
方法,您将获得None
列表中但不在键中的项目的默认值KeyError
而不是wanted_farm_animals
例外id_name_dict
格。