我有一个词典列表。如何使用'label'来计算元素的数量:'car'?
另外,如何创建一个包含'label'的所有元素的全新列表:'car'?
result = [{'bottomright': {'x': 434, 'y': 102},
'confidence': 0.3357535,
'label': 'car',
'topleft': {'x': 418, 'y': 88}},
{'bottomright': {'x': 621, 'y': 120},
'confidence': 0.55622935,
'label': 'cup',
'topleft': {'x': 580, 'y': 106}},
{'bottomright': {'x': 136, 'y': 201},
'confidence': 0.32227623,
'label': 'truck',
'topleft': {'x': 77, 'y': 166}},
{'bottomright': {'x': 229, 'y': 235},
'confidence': 0.3240861,
'label': 'car',
'topleft': {'x': 184, 'y': 198}},
{'bottomright': {'x': 281, 'y': 265},
'confidence': 0.63466769,
'label': 'person',
'topleft': {'x': 226, 'y': 220}},
{'bottomright': {'x': 204, 'y': 286},
'confidence': 0.54358166,
'label': 'car',
'topleft': {'x': 141, 'y': 233}},
{'bottomright': {'x': 251, 'y': 331},
'confidence': 0.70285547,
'label': 'car',
'topleft': {'x': 182, 'y': 253}},
{'bottomright': {'x': 432, 'y': 361},
'confidence': 0.74345809,
'label': 'surfboard',
'topleft': {'x': 370, 'y': 277}}]
答案 0 :(得分:2)
尝试过滤功能:
len(list(filter(lambda dic: dic['label'] == 'car', result)))
要创建一个全新的列表,请执行以下操作:
list(filter(lambda dic: dic['label'] == 'car', result))
请记住在前面投射list
转换器,因为filter
会返回一个'过滤器对象'本身。
答案 1 :(得分:1)
尝试以下代码:
include_label_list = [i for i in result if i.get('label') == 'car']
counter = len(include_label_list)
你有一个新的列表,只有汽车标签,你的这个列表的计数器应该是这个新列表的长度!