我正在使用与此类似的数据集:
animals = {
"antelope": {
"latin": "Hippotragus equinus",
"cool_factor": 1,
"popularity": 6
},
"ostrich": {
"latin": "Struthio camelus",
"cool_factor": 3,
"popularity": 3
},
"echidna": {
"latin": "Tachyglossus aculeatus",
"cool_factor": 5,
"popularity": 1
}
}
我要做的是找到以受欢迎程度衡量的“最不酷”和“最酷”的动物,例如:
> min_cool_weighted(animals)
"echidna"
> max_cool_weighted(animals)
"ostrich"
我首先想到的解决方案是创建 3 个数组(keys
、cool_factors
和popularities
),遍历字典,将所有值推送到 3 个数组中,然后使用每个值创建第四个数组 where weighted[i] = cool_factor[i] * popularity[i]
,然后取最小值/最大值并抓取键数组中的对应键。但是,这似乎不是很 Pythonic。
有没有更好、更有表现力的方式?