我正在尝试将我的元组列表转换为一个字典,其中包含该位置的值,并连接到一个列表中。 dict 做我想做的事,只是它删除了重复项,这是我不想要的!
这是发生了什么:
>>> vals
[(5, u'3'), (5, u'3'), (8, u'1'), (8, u'1')]
>>> dict(vals)
{8: u'1', 5: u'3'}
这是我想要发生的事情
>>> vals
[(5, u'3'), (5, u'3'), (8, u'1'), (8, u'1')]
>>> foo(vals)
{8: [u'1',u'1'], 5: [u'3',u'3']}
是否有其他一些 python 函数(在上述情况下为 foo)执行此操作?
请您参考如下方法:
这很容易使用 setdefault 完成:
def foo(some_list):
result = {}
for k, v in some_list:
result.setdefault(k, []).append(v)
return result
(使用 setdefault 比使用 get(k, []) + [v] 更有效,因为我们就地追加)
