6

私はこれに似たデータセットを扱っています:

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 つの配列 ( keyscool_factors、およびpopularities) を作成し、辞書をループして、すべての値を 3 つの配列にプッシュし、次に各値で 4 番目の配列を作成しweighted[i] = cool_factor[i] * popularity[i]、最小/最大を取得してグラブすることです。キー配列からの対応するキー。ただし、これはあまり Pythonic ではないようです。

より良い、より表現力豊かな方法はありますか?

4

2 に答える 2