我从MySQLdb提取了一些元组,如下所示:

((2L, 0.904672), (2L, 0.816745), (2L, 1.07916), (31L, 0.874432), (31L, 1.13517), (31L, 0.737347), (11L, 0.507236), (11L, 0.946989), (11L, 0.816373).....)


有一些重复的值,例如2L31L11L。我想将值用作我的字典的键

我想问的是如何将这些元组转换为具有基于键的数组值的字典?

所以我想做的是这样的:

{'2L':[0.904672,0.816745,1.07916], '31L':[0.874432,1.13517,0.737347],'11L':[0.507236,0.946989,0.816373],..........}


任何帮助,将不胜感激 :)

最佳答案

不导入任何内容,您可以执行以下操作:

data=(('2L', 0.904672), ('2L', 0.816745), ('2L', 1.07916), ('31L', 0.874432))

out={}
for k,v in data:
    out.setdefault(k,[]).append(v)


如果k中不存在out,则创建k:[],否则将v附加到out[k]

输出:

{'31L': [0.874432], '2L': [0.904672, 0.816745, 1.07916]}

09-04 03:31