我有以下需要排序的数据结构。对于作为一组具有相同高度的物品的每个箱子,我需要获得面积总和和重量总和,并按比例对箱子进行排序。
bins = {
12 : [
{
length : 12
width : 24
weight : 50
},
{
length : ...
width : ...
weight : ...
}
]
52 : ...
24 : ...
36 : ...
}
输入的键bins
是高度,每个 bin 中都有一个项目列表。
我试图想出一些东西,但我没有运气。
bins = sorted(bins, key=lambda bin: (
sum([item['Length']*item['Width'] for item in bins[bin]]) /
sum([item['Weight'] for item in bins[bin]])
), reverse=True)
问题是这会返回一个列表。无论如何要保留字典对象。我应该将其转换为迭代器吗?