我有一个元组列表。第一部分是可能重复也可能不重复的标识符。我想把这个列表处理成一个字典,用标识符作为键。这个问题,我一直无法考虑用钥匙覆盖:元组列表,第一个元组作为键,按键分组到字典中
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。
什么是更好或更有效的解决方案?
关于'defaultdict'的另一个问题是? –
'l = [xx [1:] for xx in x]'会更好。也没有理由做'x = list(g)'。 –
这是您的预期产出?或者你想要的东西像:{123 :('efg','hij','abc','def'),456 :('klm','nop')}' –