📜  Python – 获取对象列表中具有最大属性值的对象

📅  最后修改于: 2022-05-13 01:55:24.049000             🧑  作者: Mango

Python – 获取对象列表中具有最大属性值的对象

给定一个对象列表,任务是编写一个Python程序,使用Python获取对象列表中具有 max 属性值的对象。

此任务可以通过使用 max() 方法和 attrgetter运算符来完成。它返回一个可调用对象,该对象从其操作数中获取 attr。如果请求了多个属性,则返回一组属性。属性名称也可以包含点。

句法:

attrgetter(attr)

为了完成工作,定义一个类并定义一个 __init__() 方法。然后,初始化实例变量,例如薪水和经验。现在,为 geeks 类创建多个实例/对象,并将所有对象附加到一个列表中。现在使用 key=attribute 将对象列表传递给 max() 方法,可以使用 attrgetter运算符给出属性。

max() 方法将返回具有 max 属性值的对象。

示例 1:获取对象 对象列表中的最大属性值

Python3
from operator import attrgetter
  
  
class geeks:
    def __init__(self, experience, salary):
        self.experience = experience
        self.salary = salary
  
  
object1 = geeks(2, 50000)
object2 = geeks(3, 60000)
object3 = geeks(1, 20000)
object4 = geeks(4, 75000)
  
l = [object4, object3, object2, object1]
max_attr = max(l, key=attrgetter('salary'))
print(max_attr.salary)


Python3
from operator import attrgetter
  
  
class geeks:
    def __init__(self, experience, salary):
        self.experience = experience
        self.salary = salary
  
  
object1 = geeks(7, 57050)
object2 = geeks(3, 98000)
object5 = geeks(6, 45000)
object4 = geeks(1, 89000)
object3 = geeks(5, 25000)
  
l = [object4, object3, object5, object2, object1]
max_attr = max(l, key=attrgetter('salary'))
print(max_attr.salary)


输出:

75000

示例 2:在对象列表中获取具有 max 属性值的对象

Python3

from operator import attrgetter
  
  
class geeks:
    def __init__(self, experience, salary):
        self.experience = experience
        self.salary = salary
  
  
object1 = geeks(7, 57050)
object2 = geeks(3, 98000)
object5 = geeks(6, 45000)
object4 = geeks(1, 89000)
object3 = geeks(5, 25000)
  
l = [object4, object3, object5, object2, object1]
max_attr = max(l, key=attrgetter('salary'))
print(max_attr.salary)

输出:

98000