如何按某些关键字筛选词典列表



我有以下列表:

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

最新更新