How to find the two largest elements in a list with Python

1 Answer

0 votes
from typing import List, Tuple


def find_two_largest(numbers: List[int]) -> Tuple[int, int]:
    """
    Find the largest and second-largest elements in a list.

    Args:
        numbers: A list of integers.

    Returns:
        A tuple containing:
        (largest, second_largest)

    Raises:
        ValueError: If the list contains fewer than two elements.
    """
    if len(numbers) < 2:
        raise ValueError("The list must contain at least two elements.")

    largest = float("-inf")
    second_largest = float("-inf")

    for value in numbers:
        # Found a new largest value
        if value > largest:
            second_largest = largest
            largest = value

        # Update second largest if needed
        elif value > second_largest:
            second_largest = value

    return largest, second_largest


def main() -> None:
    numbers: List[int] = [3, 4, 9, 6, 7, 1, 2, 5]

    largest, second_largest = find_two_largest(numbers)

    print(f"List: {numbers}")
    print(f"Largest element: {largest}")
    print(f"Second largest element: {second_largest}")


if __name__ == "__main__":
    main()


'''
run:

List: [3, 4, 9, 6, 7, 1, 2, 5]
Largest element: 9
Second largest element: 7

'''

 



answered 5 days ago by avibootz
...