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中文網其他相關文章!