Python 按键对数据进行分组
本指南解决了在 Python 中按特定键对数据进行分组的任务。我们的目标是为给定的数据集实现高效且有序的分组解决方案。
问题陈述
考虑以下表示为键值对的数据集:
<code class="python">input = [ ('11013331', 'KAT'), ('9085267', 'NOT'), ('5238761', 'ETH'), ('5349618', 'ETH'), ('11788544', 'NOT'), ('962142', 'ETH'), ('7795297', 'ETH'), ('7341464', 'ETH'), ('9843236', 'KAT'), ('5594916', 'ETH'), ('1550003', 'ETH') ]</code>
目标是通过对应的键(每个元组中的第二个元素)对这些数据对进行分组,并以以下格式返回分组结果:
<code class="python">result = [ { 'type': 'KAT', 'items': ['11013331', '9843236'] }, { 'type': 'NOT', 'items': ['9085267', '11788544'] }, { 'type': 'ETH', 'items': ['5238761', '962142', '7795297', '7341464', '5594916', '1550003'] } ] </code>
解决方案
以下是有效对数据进行分组的步骤:
创建字典:使用 defaultdict 来存储每个键的项目。使用默认工厂初始化字典,为每个新键创建一个空列表。
<code class="python">from collections import defaultdict res = defaultdict(list) for v, k in input: res[k].append(v)</code>
将字典转换为预期格式:生成最终结果结果,将字典转换为具有所需结构的字典列表。
<code class="python">result = [{'type': k, 'items': v} for k, v in res.items()]</code>
可选注释:
以上是如何在Python中按键对数据进行分组并以特定格式返回结果,有效处理具有重复键的数据并保持顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!