タプルのリストがあります。最初の部分は、繰り返される場合と繰り返されない場合がある識別子です。このリストを識別子でキー設定された辞書に処理したいと思います。問題は、キーによる上書きについて考えることができなかったことです。
def response_items(self):
ri = self.response_items_listing#(gets the list)
response_items = {}
for k, g in groupby(ri, itemgetter(0)):
x = list(g)
l = [(xx[1],xx[2]) for xx in x]
response_items[k] = l
return response_items
例:次のようなリスト:
[('123', 'abc', 'def'),('123', 'efg', 'hij'),('456', 'klm','nop')]
として戻ってきます
{123:('efg', 'hij'), 456:('klm', 'nop')}
しかし、私は必要です:
{123:[('abc', 'def'),('efg', 'hij')], 456:('klm', 'nop')}
キーごとにマージ/集約するための手順を実行する必要がありますが、正確にATMが表示されていません。
より良いまたはより効率的なソリューションは何ですか?