小编sni*_*kle的帖子

Pythonic方法从字典中查找加权最小值和最大值的关键字

我正在使用与此类似的数据集:

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
            }
          }
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到受欢迎程度加权的"最不酷"和"最酷"的动物,这样:

> min_cool_weighted(animals)
  "echidna"

> max_cool_weighted(animals)
  "ostrich"
Run Code Online (Sandbox Code Playgroud)

首先来到我的解决方案是创建3个数组(keys,cool_factorspopularities),循环遍历字典,将所有值推入3个数组,然后创建第四个数组,每个值在哪里weighted[i] = cool_factor[i] * popularity[i],然后取最小值/最大值并抓取键数组中的相应键.但是,这似乎不是Pythonic.

有更好,更有表现力的方式吗?

python dictionary

6
推荐指数
1
解决办法
79
查看次数

标签 统计

dictionary ×1

python ×1