【发布时间】:2020-10-22 12:09:03
【问题描述】:
我想检查我的列表是否包含具有相同两个键值的元素。
例如我想通过category和weight在下面的列表中进行聚合:
products = [
{"id": 1, "category": "Furniture", "weight": 3.22},
{"id": 2, "category": "Furniture", "weight": 4.55},
{"id": 3, "category": "Furniture", "weight": 3.22},
{"id": 4, "category": "Garden", "weight": 3.22},
]
上面的例子应该返回 True
products = [
{"id": 1, "category": "Furniture", "weight": 3.22},
{"id": 2, "category": "Furniture", "weight": 4.55},
{"id": 4, "category": "Garden", "weight": 3.22},
]
上面的例子应该返回 False
【问题讨论】:
-
请用您尝试过的代码更新您的问题。
-
你想如何比较两个字典?通过键'类别'和'重量'而不是'id'?
-
看看
itertools.groupby。您可以按类别和权重进行分组,然后查看任何组是否包含多个元素。 -
@adirabargil 是的
-
@chepner 这需要首先按所需的键功能进行排序,这很好,但是 O(n log n)。
标签: python python-3.x itertools