How to search the max value of an attribute in an array object ?

When working with objects in Python, we often need to find the maximum value of an attribute in a list of objects. Python provides several approaches including simple loops, the max() function with a key parameter, and list comprehensions. In this article, we will explore these methods with practical examples.

Method 1: Using For Loops

In this method, we iterate through the list of objects using a loop and compare the attribute value of each object with the current maximum value.

Syntax

for obj in objects:
    if obj.attribute > max_value:
        max_value = obj.attribute

Here, inside the loop, we compare the attribute value of each object with the current maximum. If a higher value is found, we update the max_value variable accordingly.

Example

In the below example, we have a list of student objects, where each object represents a student with a name and score attribute. The loop compares the score attribute of each student with the current maximum ?

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

students = [
    Student("John", 80),
    Student("Alice", 95),
    Student("Bob", 70)
]

max_score = students[0].score
for student in students[1:]:
    if student.score > max_score:
        max_score = student.score

print("Maximum score:", max_score)
Maximum score: 95

Method 2: Using the max() Function

The max() function with a key parameter allows us to find the object with the maximum attribute value directly.

Syntax

max_obj = max(objects, key=lambda obj: obj.attribute)
max_value = max_obj.attribute

Here, the max() function compares objects based on the attribute specified in the key parameter and returns the object with the highest value.

Example

The max() function with a lambda expression makes finding the maximum attribute value more concise and readable ?

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

students = [
    Student("John", 80),
    Student("Alice", 95),
    Student("Bob", 70)
]

max_student = max(students, key=lambda student: student.score)
print("Maximum score:", max_student.score)
print("Student with highest score:", max_student.name)
Maximum score: 95
Student with highest score: Alice

Method 3: Using List Comprehension with max()

This method uses list comprehension to extract the attribute values into a new list, and then applies the max() function to find the maximum value.

Syntax

max_value = max([obj.attribute for obj in objects])

Here, we use list comprehension to create a new list containing only the attribute values, then apply max() to find the maximum value.

Example

In the below example, we use list comprehension to create a new list containing only the score values from the students list, then find the maximum score ?

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

students = [
    Student("John", 80),
    Student("Alice", 95),
    Student("Bob", 70)
]

max_score = max([student.score for student in students])
print("Maximum score:", max_score)
Maximum score: 95

Comparison

Method Readability Performance Returns
For Loop Good Good Max value only
max() with key Excellent Best Complete object
List comprehension Good Fair Max value only

Conclusion

Use max() with a key parameter for the most Pythonic and efficient approach. Use for loops when you need more complex logic, and list comprehension when you only need the maximum value itself.

Updated on: 2026-03-27T08:45:25+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements