我从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).....)
有一些重复的值,例如2L
,31L
和11L
。我想将这些值用作我的字典的键
我想问的是如何使用基于键的数组值将这个元组转换为dict?
所以我想做的是这样的:
{'2L':[0.904672,0.816745,1.07916], '31L':[0.874432,1.13517,0.737347],'11L':[0.507236,0.946989,0.816373],..........}
任何帮助将不胜感激:)
答案 0 :(得分:3)
defaultdict是一个字典,其值为列表,因此您只需添加所需的值即可。
from collections import defaultdict
results_dict = default_dict(list)
for record in results:
for (k,v) in record:
results_dict[k].append(v)
答案 1 :(得分:2)
尝试这样的事情:
dict = {}
for k,v in results:
if k in dict:
dict[k].append(v)
else:
dict[k] = [v]
答案 2 :(得分:2)
无需导入任何内容即可:
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]}
答案 3 :(得分:2)
from collections import defaultdict
d = defaultdict(list)
for val1, val2 in tups:
d[val2].append(val2)