我想将字典转换为带有列表值的字典
我想转换:
f= {24149423: 59, 22621293.0: 367562.0, 24144369.0: 405017.0, 22662739.0: 276484.0, 22470388.0: 410315.0, 22624054.0: 398444.0, 22614201.0: 380106.0, 22564857.0: 90756.0, 22619259.0: 382386.0, 22692381.0: 388392.0}
到列表值
的字典b = {90756.0: [22564857.0], 388392.0: [22692381.0], 367562.0: [22621293.0], 410315.0: [22470388.0], 398444.0: [22624054.0], 382386.0: [22619259.0], 405017.0: [24144369.0], 276484.0: [22662739.0], 59: [24149423], 380106.0: [22614201.0]}
我试着这样写:
from collections import defaultdict
b = defaultdict(list)
for key, value in sorted(f.iteritems()):
b[value].append(key)
我也使用了地图。
b = map(lambda k, v: f.update({k: v}), keys, values)
但这些都不起作用。
答案 0 :(得分:3)
for key in f.keys():
f[key] = [f[key]]
也有效......
答案 1 :(得分:2)
使用dict comprehension,如下所示:
b = { v: [k] for k,v in f.items() }
[k]
是一个包含密钥的单元素列表,v
是值,现在在结果字典中播放密钥的折叠。
答案 2 :(得分:0)
f= {24149423: 59, 22621293.0: 367562.0, 24144369.0: 405017.0, 22662739.0: 276484.0, 22470388.0: 410315.0, 22624054.0: 398444.0, 22614201.0: 380106.0, 22564857.0: 90756.0, 22619259.0: 382386.0, 22692381.0: 388392.0}
new_f = {x:[f[x]] for x in f}
使用dict理解你可以很快地编辑它。