Напишите функцию, которая принимает список чисел и возвращает второе наибольшее число. Если такого числа нет (например, все элементы одинаковые или список содержит менее двух элементов), функция должна возвращать
None.Пример:
print(second_largest([4, 1, 7, 3, 9, 7])) # Ожидаемый результат: 7
print(second_largest([10, 10, 10])) # Ожидаемый результат: None
print(second_largest([5])) # Ожидаемый результат: None
Решение задачи🔽
def second_largest(numbers):
unique_numbers = list(set(numbers))
if len(unique_numbers) < 2:
return None
unique_numbers.sort(reverse=True)
return unique_numbers[1]
# Пример использования:
print(second_largest([4, 1, 7, 3, 9, 7])) # Ожидаемый результат: 7
print(second_largest([10, 10, 10])) # Ожидаемый результат: None
print(second_largest([5])) # Ожидаемый результат: None