您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:10 python 字数 1722 阅读 506 来源 www.jb51.cc/python

我正在使用与此类似的数据集: animals = { "antelope": { "latin": "Hippotragus equinus", "cool_factor": 1, "popularity": 6 }, "os

概述

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个数组(键,cool_factors和流行度),循环遍历字典,将所有值推入3个数组,然后创建第四个数组,每个值加权[i] = cool_factor [i] * popular [i],然后取最小值/最大值并从键阵列中获取相应的键.但是,这似乎不是Pythonic.

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

min(animals,key=lambda x: animals[x]["cool_factor"]*animals[x]["popularity"])
'echidna'
max(animals,key=lambda x: animals[x]["cool_factor"]*animals[x]["popularity"])
'ostrich'

总结

以上是编程之家为你收集整理的Pythonic方法从字典中查找加权最小值和最大值的关键字全部内容,希望文章能够帮你解决Pythonic方法从字典中查找加权最小值和最大值的关键字所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶