我有一系列看起来像
的词典a = [
{'name': 'a', 'age':10},
{'name': 'b', 'age':10},
{'name': 'c', 'age':15},
{'name': 'd', 'age':10}
]
我想找到此数组中包含" age
"的项目数。 10
。我正在寻找一个len
和set
的单行解决方案(我想避免使用for循环)。感谢。
=================
如果我想找到独特的"年龄"
的数量,该怎么办?答案 0 :(得分:3)
对于计数:
len(list(filter(lambda x: x['age'] == 10, a)))
独特:
len(set(map(lambda x: x['age'], a)))
答案 1 :(得分:0)
len([x for x in lst if x['age'] == 10])
答案 2 :(得分:0)
您使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
答案 3 :(得分:0)
这是一个班轮:
number_of_people = sum( person['age'] == 10 for person in list_of_people)