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