我有以下收藏。
[
{'propertyA': {},
'propertyB': 12345,
'id': 1},
{'propertyA': {},
'propertyB': 12345,
'id': 2},
{'propertyA': {},
'propertyB': 12345,
'id': 3},
{'propertyA': {'subProperty1': 'x',
'subProperty2': 'y'},
'propertyB': 67890,
'id': 4},
{'propertyA': {'subProperty1': 'x',
'subProperty2': 'y'},
'propertyB': 67890,
'id': 5}
]
如您所见,前三项具有相同的'propertyA'
和'propertyB'
,但它们都具有唯一的ID。因此可以安全地假设'propertyA'
和'propertyB'
就像一个捆绑,两者的组合始终如一。
我想在此数组中确定 UNIQUE 项目(在此情况下唯一被定义为'propertyA'
和'propertyB'
的唯一组合)的数量为空({{ 1}})字段{}
。在这种情况下,它是1.
为了让自己更清楚,让我们添加另一个项目
'propertyA'
现在有两个独特的项目数量。我知道这有点令人困惑,请随时让我进一步澄清。
答案 0 :(得分:2)
使用生成器表达式过滤集合,并使用set
获取唯一元素。
print len(set(item['propertyB'] for item in a if item['propertyA']=={}))
答案 1 :(得分:0)
{{1}}