从该对象中其他值最大的对象获取属性值

Getting attributte value from object where other value in this object is the biggest

我有这个包含 p1 和 p2 参数(以及其他一些东西)的对象列表。

Job("J1", p1=8, p2=3)
Job("J2", p1=7, p2=11)
Job("J3", p1=5, p2=12)
Job("J4", p1=10, p2=5)
...
Job("J222",p1=22,p2=3)

使用python,我可以通过

轻松获得p2的最大值
(max(job.p2 for job in instance.jobs))

但是如何获取 p1 的值,其中 p2 最大?

看起来很简单,但我怎么也弄不明白...你们能帮帮我吗?

如果 instance.jobs 是您要检查的可迭代对象,并且所有元素都有一个 p1 和一个 p2 属性,请使用

max(instance.jobs, key=lambda job: job.p2).p1

如果有多个作业 p2 最大,您将从其中一个作业中获得任意 p1 值。

你可以这样循环:

mx = -inf

for job in instance.jobs:
    if job.p2 > mx:
        mx = job.p2
        var = job
print(mx)
print(var)
print(var.p1)

示例输出:

12
<object>
5