如何将带有列表值的字典拆分成多个“行” /字典?
我首先尝试了这种方法,
d={'time':[0,1,2],'angle':[60,120,180],'x':[5,10,15],'curve':[0.1,0.2,0.3]}
keys=list(d.keys())
v1,v2,v3,v4=d.values()
print(keys)
print([list(x) for x in zip(v1,v2,v3,v4)])
d_new=[]
for i in [list(x) for x in zip(v1,v2,v3,v4)]:
d_new.append(dict(zip(keys,i)))
print(d_new)
然后我发现有完全相同的问题,答案完美。 我看到了我也在想知道的某个人的问题,并从那里找到了一个不错的答案。当我从那里使用代码时,就像
d={'time':[0,1,2],'angle':[60,120,180],'x':[5,10,15],'curve':[0.1,0.2,0.3]}
result = [dict(zip(d.keys(), i)) for i in zip(*d.values())]
来源:Split list values inside dictionary to separate dictionaries
但是我不明白为什么要使用*来使d.values()解包,从而使此过程非常简单。
为什么?怎么样?