如何在字典数组中找到具有特定值的字典数?
问题描述:
我的字典看起来像如何在字典数组中找到具有特定值的字典数?
a = [
{'name': 'a', 'age':10},
{'name': 'b', 'age':10},
{'name': 'c', 'age':15},
{'name': 'd', 'age':10}
]
我想找到的10
有“age
”这个数组中的项目数的数组。我正在寻找与len
和set
(我想避免使用for循环)的单线解决方案。谢谢。
=================
如果我想找到一个独特的“年龄”的数量?
答
对于计数:
len(list(filter(lambda x: x['age'] == 10, a)))
对于独特:
len(set(map(lambda x: x['age'], a)))
答
len([x for x in lst if x['age'] == 10])
答
您造成len()
与列表理解 -
len([item for item in lst if item['age'] == 10])
特通常这仍然是一个for循环,但会比Python中传统的for
循环更快一些。
运行示例 -
>>> lst = [{'name': 'a',
... 'age':10
... },
... {'name': 'b',
... 'age':10
... },
... {'name': 'c',
... 'age':15
... },
... {'name': 'd',
... 'age':10
... }]
>>> len([item for item in lst if item['age'] == 10])
3
答
这里是一个班轮:
number_of_people = sum(person['age'] == 10 for person in list_of_people)
OP说,他们希望避免使用循环。此解决方案不成立。 – idjaw