如何在集合中确定Python中具有非空属性的元素数量?

时间:2015-10-20 23:11:46

标签: python

我有以下收藏。

[
{'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'

现在有两个独特的项目数量。我知道这有点令人困惑,请随时让我进一步澄清。

2 个答案:

答案 0 :(得分:2)

使用生成器表达式过滤集合,并使用set获取唯一元素。

print len(set(item['propertyB'] for item in a if item['propertyA']=={}))

答案 1 :(得分:0)

{{1}}