我如何在此列表中找到重复项的数量。

>>> result = SiteTags.objects.values('content_type','object_id')
>>> result
[{'object_id': 1, 'content_type': 46}, {'object_id': 1, 'content_type': 46}, {'object_id': 2, 'content_type': 42}]

无论如何要在查询中找到?还是通过其他方式?

谢谢!

最佳答案

set(tuple(sorted(r.iteritems())) for r in result)

在此列表中为您提供一组独特的元素。取其长度并将其与 len(result) 进行比较。

要获取结果中的每个元素及其计数:
counter = {}
for r in result:
    tup = tuple(sorted(r.iteritems()))
    counter[tup] = counter.get(tup, 0) + 1
for tup, cnt in counter.iteritems():
    print dict(tup), cnt

打印:
{'object_id': 2, 'content_type': 42} 1
{'object_id': 1, 'content_type': 46} 2

关于python - 计算django python中dict列表中的重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8238319/

10-12 01:28