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

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

概述我正在使用与此类似的数据集: 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.

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

解决方法 max和 min就足够了
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方法从字典中查找加权最小值和最大值的关键字所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1206535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存