キーによる 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>
目的は、これらのデータ ペアを対応するキー (各タプルの 2 番目の要素) でグループ化し、グループ化された結果を次の形式で返すことです:
<code class="python">result = [ { 'type': 'KAT', 'items': ['11013331', '9843236'] }, { 'type': 'NOT', 'items': ['9085267', '11788544'] }, { 'type': 'ETH', 'items': ['5238761', '962142', '7795297', '7341464', '5594916', '1550003'] } ] </code>
Solution
データを効率的にグループ化する手順は次のとおりです:
辞書を作成します: 各キーの項目を保存するには、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 中国語 Web サイトの他の関連記事を参照してください。