問題:
与えられた一連のデータペアをグループ化する指定されたインデックスの値に基づいて、それらを目的の形式に変換します。
解決策:
データ ペアをタイプ別に効率的にグループ化するには、次の手順に従います。
ステップ 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 関数ですが、入力データを並べ替える必要があります。
<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 (一般): * S に基づいて Python でデータペアをグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。