从该对象中其他值最大的对象获取属性值
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
我有这个包含 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