我有以下列表:
list = [{'Jim': {'age': 20, 'lastname': 'Smith'}}, {'Sarah': {'age': 25, 'lastname': 'Jones'}}, {'Bill': {'age': 30, 'lastname': 'Lee'}}]
我希望能够通过Key过滤list
,所以例如,如果我想要Sarah dict,我希望输出是那个字典。例如:
output = {'Sarah': {'age': 25, 'lastname': 'Jones'}}
python中有filter
函数可以做到这一点:
my_list = = [{'Jim': {'age': 20, 'lastname': 'Smith'}}, {'Sarah': {'age': 25, 'lastname': 'Jones'}}, {'Bill': {'age': 30, 'lastname': 'Lee'}}]
filtered_list = list(filter(lambda x: 'Sarah' in x, my_list))
第一个参数是一个函数本身,它将列表中的每个元素作为参数,并返回一个布尔值,说明是否应该保留该元素。
我们可以使用for循环来迭代列表。这样,我们在每个循环迭代中都会得到一个字典。使用成员运算符in
,我们可以检查名称的存在。
lst = [{'Jim': {'age': 20, 'lastname': 'Smith'}}, {'Sarah': {'age': 25, 'lastname': 'Jones'}}, {'Bill': {'age': 30, 'lastname': 'Lee'}}]
search = "Sarah"
for outer_dict in lst:
if search in outer_dict:
print(outer_dict)
输出为:{'Sarah': {'age': 25, 'lastname': 'Jones'}}