python - 如何通过在 Python 中调用函数来查找对象列表中的最大值
问题描述
我想在 python 中定义一个函数,它返回对象列表中计算变量的最大值。我首先创建了一个类并定义了新变量来计算人均 GDP(以千计)(self.percapita = 1000 * self.gdp / self.population):
class Country():
def __init__(self, name, population, gdp) :
self.name = name
self.population = population
self.gdp = gdp
self.percapita = 1000 * self.gdp / self.population
我输入实例列表:
unitedstates = Country("unitedstates", 326766748, 19390600)
china = Country("china", 1415045928 , 12014610)
japan = Country("japan", 127185332, 4872135)
list = [unitedstates, china, japan]
我需要你的帮助来创建一个函数,该函数返回人均最高的国家和一个包含国家名称和人均值的元组:
def highest_percapita(list) :
我知道以下代码会生成所需的输出,但我需要创建上述函数:
from operator import attrgetter
highest_percapita = max(list, key=attrgetter('percapita'))
print(highest_percapita.name)
print(highest_percapita.name, highest_percapita.percapita)
谢谢!
解决方案
这应该这样做:
from operator import attrgetter
class Country():
def __init__(self, name, population, gdp):
self.name = name
self.population = population
self.gdp = gdp
self.percapita = 1000 * self.gdp / self.population
def highest_percapita(list) :
return max(list, key=attrgetter('percapita'))
unitedstates = Country("unitedstates", 326766748, 19390600)
china = Country("china", 1415045928 , 12014610)
japan = Country("japan", 127185332, 4872135)
lst = [unitedstates, china, japan]
print(highest_percapita(lst).name)
输出
unitedstates
推荐阅读
- python-3.x - 在 pandas 数据框列中查找月末
- tensorflow - CUDA 10.0 和 10.1 可以在同一个系统上吗?
- c - 在编译期间将扩展的宏打印到文件中
- python - 如何在 Python 中将经过的时间字符串转换为秒
- mongodb - Gitlab CI中的Mongodb连接
- javascript - 如何通过 Sequelize 连接多个数据库?
- sql - 在 SQL Server 2008 中存储为图像数据类型的长文本的关键字搜索
- javascript - React 递归函数以渲染组件
- php - 使 nginx 在子目录中与 symfony 一起工作时遇到问题
- google-chrome - 为什么我的预检请求在 Firefox 中使用 axios 制作的 http DELETE 请求返回 400?