问题:
给定一组数据对,将它们分组基于指定索引处的值并将其转换为所需的格式。
解决方案:
要按类型对数据对进行有效分组,请按照以下步骤操作:
第 1 步:创建字典
使用集合模块中的 defaultdict 创建字典,其中键是类型,值是值列表:
<code class="python">from collections import defaultdict res = defaultdict(list) for v, k in input: res[k].append(v)</code>
第 2 步:将词典转换为所需格式
将创建的词典转换为所需格式的词典列表:
<code class="python">result = [{'type': k, 'items': v} for k,v in res.items()]</code>
其他注意事项:
使用 **itertools.groupby()**:
另一种方法涉及使用itertools.groupby 函数,但需要对输入数据进行排序 terlebih dahulu。
<code class="python">import operator as itemgetter import itertools sorted_input = sorted(input, key=itemgetter(1)) groups = itertools.groupby(sorted_input, key=itemgetter(1)) result = [{'type': k, 'items':[x[0] for x in v]} for k, v in groups]</code>
以上是以下是一些标题选项,请记住问答格式以及本文的重点是在 Python 中对数据对进行分组: 选项 1(一般): * 如何在Python中基于S对数据对进行分组的详细内容。更多信息请关注PHP中文网其他相关文章!