给出一个值列表,例如
list1=[19, 25, 100]
和索引:
i = {'a': {10: 1}, 'b': {100: 3}, 'c': {19: 3, 25: 2, 26: 1, 28: 1, 30: 1}, 'd': {46:4, 100: 1}, 'e': {10: 1, 25: 1, 100: 1}, 'f': {4: 1, 19: 1}
什么是最便宜的方法(处理更大的比例),我可以在dict的第一个值中查找列表值,将属于它出现的键的值对的所有第二个值相加乘以第二个值本身?我想要在这样的结构中整理这些值。
{{19: [24, 2], 25: [16, 3], 100: [3, 3, 5]}}
其中24 =(3 *(3 + 2 + 1 + 1 + 1))例如
谢谢。
答案 0 :(得分:1)
这是一个双循环解决方案,循环遍历键和字典,并在旅途中构建字典:
result = {}
for k in list1:
result[k] = []
for v in i.values():
if k in v:
result[k].append(v[k] * sum(v.values()))
result
# {19: [24, 2], 25: [16, 3], 100: [9, 3, 5]}