我正在使用以下字典:
d = {'inds':[0, 3, 7, 3, 3, 5, 1], 'vals':[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}
我想创建一个new_list,它接受列表 d['vals']
中的值,并通过列表 d['inds']
中的相应索引将它们放在new_list中 . 最终结果应该是:
[1.0, 7.0, 0.0, 11.0, 0.0, 6.0, 0.0, 3.0]
这需要以下内容:
d['inds'] == [0, 3, 7, 3, 3, 5, 1]
d['vals'] == [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
对于未包含在 d['inds']
中的任何索引位置,相应的值为0.0 .
对于重复的索引位置,该位置的 True
值是各个值的总和 . 例如,3以上重复3次;所以, new_list[3]
应该 == 11
,这是2.0 4.0 5.0的总和 .
2 回答
首先,分配一个适当长度和满零的列表:
然后遍历索引和值并将它们添加到列表中的值:
输出:
在与帮助我完成此操作的同事合作之后,获得了以下内容以获得更加动态的功能(允许不同长度的结果列表):