Как найти два максимальных числа в питоне
Перейти к содержимому

Как найти два максимальных числа в питоне

Условие

Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности. Гарантируется, что в последовательности есть хотя бы два элемента.

Решение

Комментарии

Не работает на последовательности
2
1
0

прекрасно всё работает

нет, не работает

Зато эта работает:
x=-1
first=0
second=0
while x!=0:
x=int(input())
if x>first and x!=0:
second=first
first=x
elif xsecond and x!=0:
second=x
print(second)

x=-1
first=0
second=0
while x!=0:
x=int(input())
if x>first and x!=0:
second=first
first=x
elif xsecond and x!=0:
second=x
print(second)

Сайт короче обрезает строки, тут не полное решение

Добавить комментарий Отменить ответ

ЕГЭ на соточку для чайников

Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене ��

Методы min() и max() в Python

max метод в Python

В этом руководстве мы собираемся понять использование методов min и max в Python. По сути, метод Python max() возвращает максимальное значение среди набора переданных значений или элементов переданного итеративного объекта.

Использование метода Python max()

Ниже приведен синтаксис использования метода Python max() для поиска наибольшего значения в итерируемом объекте.

  • iterable — это объект, содержащий значения, для которых необходимо найти наибольшее,
  • key определяет функцию упорядочивания с одним аргументом,
  • И значение по умолчанию — это значение по умолчанию, возвращаемое методом, если переданная итерация пуста.

Чтобы найти наибольшее среди двух или более значений, переданных в качестве аргументов,

  • arg1, arg2,…. argn — это n значений, среди которых метод max() вернет наибольшее значение.

Мы можем использовать метод max() по-разному, чтобы найти максимум или наибольшее значение данной итерации или для двух или более аргументов.

Давайте посмотрим, как метод работает с итерируемым объектом, двумя или более значениями, с указанной ключевой функцией и с несколькими итерационными объектами, переданными в качестве аргументов.

С итерируемым объектом

В приведенном ниже примере мы рассматриваем список с некоторыми значениями, для которого мы должны найти самый большой элемент. Внимательно посмотрите на приведенный ниже код.

Как мы видим, для приведенного выше кода мы инициализируем список list1 и напрямую передаем его методу max() со значением по умолчанию, равным 0. Функция возвращает 8, поскольку это наибольшее значение.

Если бы список был пуст, функция передала бы значение по умолчанию, равное 0.

Передача двух или более значений методу max()

Когда два или более значений передаются методу max() , он возвращает максимальное или самое большое из них всех. Эти аргументы могут быть целыми числами, значениями с плавающей запятой, символами или даже строками.

Получаем максимальное значение, 73.

С ключевой функцией

Как мы упоминали ранее, ключ — это однострочная функция упорядочивания, на основе которой должно быть найдено максимальное значение среди набора значений.

Например, если мы хотим найти кортеж из списка кортежей, который имеет наибольшее значение 2-го элемента. Давайте посмотрим, как мы можем это сделать.

Здесь f() — это определяемая пользователем функция, которая возвращает второй элемент переданного кортежа. Передача этой функции в качестве ключа методу max() гарантирует, что кортеж будет возвращен с самым большим 2-м элементом. В нашем примере это (6, 8, 4).

Передача нескольких итераций в качестве аргументов

Как мы заявляли ранее, метод Python max() может также возвращать в качестве аргументов наибольший из нескольких повторяемых элементов. Эти аргументы могут быть повторяемыми, например строка, символ, кортеж, список и т. д.

По умолчанию метод max() возвращает объект с максимальным нулевым элементом для списков, кортежей и т. д. А для строк он сравнивает первый символ каждой переданной строки.

Ниже мы взяли пример для кортежей. Внимательно посмотрите на код.

В этом примере три кортежа с некоторыми начальными значениями были напрямую переданы методу max() . Что возвращает кортеж с самым большим первым элементом, то есть (7, 37, 1).

Вывод

Помните, что если значение по умолчанию не установлено и в качестве аргументов функции max() передается пустая итерация, возникает ошибка ValueError.

Min() метод

По сути, метод Python min() возвращает минимальное значение среди набора переданных значений или элементов переданного итеративного объекта.

Общий синтаксис использования метода min() приведен ниже. Используя его, мы можем найти минимальное значение среди элементов итерации (список, кортеж, строка и т. д.).

А чтобы найти минимальное значение среди набора элементов, мы можем напрямую передать их все в функцию min() , разделив их запятыми («,»).

  • iterable содержит значения, для которых необходимо найти наименьшее,
  • key — это однострочная функция,
  • default — это значение по умолчанию, возвращаемое функцией, если переданная итерация пуста,
  • arg1, arg2,… argn — это набор значений, для которых функция min() вернет наименьшее значение.

1 С итерируемым объектом

Функция min() широко используется для поиска наименьшего значения, присутствующего в итерируемом объекте, таком как список, кортеж, список списков, список кортежей и т. д. В случае простых списков и кортежей она возвращает наименьшее значение, присутствующее в итерируемом объекте.

Посмотрите на пример, приведенный ниже.

Здесь передача списка list1 непосредственно методу min() дает нам минимум всех элементов, присутствующих в списке, то есть 23. Значение по default установлено на 0, так что, если переданный итерабельный объект был пустым, метод был бы вернули это значение по умолчанию (0).

Для списка символов метод min() возвращает элемент с минимальным значением ASCII.

2 С несколькими аргументами

Когда мы передаем несколько аргументов методу min() , он возвращает самый маленький из них.

Обратите внимание: мы можем передавать несколько значений, а также несколько итераций в метод min() . Для нескольких итераций метод возвращает элемент с наименьшим первым элементом (значение в 0-м индексе).

Пример ниже объясняет это легко:

В приведенном выше примере, когда мы передаем несколько значений в качестве аргументов методу min() , он просто возвращает нам наименьшее значение (434)

В то время как для list1, list2 и list3 он возвращает list3, поскольку он имеет минимальное 0-е значение индекса (19).

3 С ключевой функцией

Как мы упоминали ранее, ключевая функция — это однострочная функция упорядочивания, которая определяет, на основе какого параметра должен быть возвращен минимум.

Давайте рассмотрим пример, чтобы понять эту ключевую концепцию.

  • Сначала мы инициализируем список кортежей вместе с тремя другими целочисленными списками разной длины,
  • Затем мы определяем функцию ret_2nd_ele() которая возвращает 2-й элемент или 1-й элемент индекса переданного кортежа,
  • После этого мы передаем list_of_tuples методу min() с ret_2nd_ele() в качестве ключа,
  • Мы снова передаем три списка list1, list2 и list3 в качестве аргументов методу min() с ключом, установленным как встроенный метод len() .

Таким образом, мы получаем кортеж с минимальным 2-м элементом (1-м элементом) для списка кортежей. И список с минимальной длиной (с использованием len() ) из трех списков, то есть list1 .

Всегда помните, что передача пустой итерации без значения по умолчанию, установленного для метода min() , вызывает ValueError .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *