Перейти к содержимому

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

  • автор:

Решите задачи на Python

Уровень B. Заполните массив случайными числами и найти два максимальных элемента массива и их номера.
Пример:
Массив:
5 5 3 4 1
Максимальный элемент: A[1]=5
Второй максимум: A[2]=5
Уровень C. Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
Пример:
Массив:
3 4 5 5 3 4 5
Максимальное значение 5
Количество элементов 3

Голосование за лучший ответ

user = int(input(«Введите количество элементов массива: «))
lst = []
for i in range(user):
lst.append(random.randint(-100, 100))
maximum = lst[0]
for i in lst:
if i > maximum:
maximum = i
print(«Массив:», lst)
lst.remove(maximum)
maximum2 = lst[0]
for i in lst:
if i > maximum2:
maximum2 = i
print(«Первый максимум:», maximum)
print(«Второй максимум:», maximum2)

user_count = int(input(«Введите количество элементов массива: «))
lst = []
for i in range(user_count):
lst.append(int(input(«Введите » + str(i + 1) + » элемент: «)))
dct = <>
maximum = lst[0]
for i in lst:
if i > maximum:
maximum = i
if i in dct:
dct[i] += 1
else:
dct[i] = 1
print(«Максимальное значение:», maximum)
print(«Количество элементов:», dct[maximum])

l = random.sample(range(10000000), k=60)
m1 = max(l)
l.remove(m1)
m2 = max(l)
print(«Первый максимум:», m1)
print(«Второй максимум:», m2)

2.
l = list(map(int, input(‘Значени массива чрез пробел: ‘).split(‘ ‘)))
m = max(l)
print(«Максимальное значение:», m)
print(«Количество элементов:», l.count(m))

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

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Как правильно решить задачу по поиску двух максимальных чисел в списке?

angru

я так и не понял, зачем в ответах все очищают список от нечисловых данных. в задаче четко говорится: «найти два максимальных из списка чисел и найти их сумму». то, что данные могут быть нечисловыми, автор, похоже, откуда-то из головы взял.

список разнородных данных, в природе не очень часто встречается.

dimonchik2013

Dimonchik @dimonchik2013

по условию задачи — да, по идее, только числа
а на практике — запросто встречаются — парсинг XPath ом (да и кривыми регекспами типа (.*) некой таблицы — и вот оно

вывести два максимальных элемента списка без сортировки

Кто там говорил, что в одну строчку не получится? Если ищем только разные элементы, то легко:

a = [2, 2, 3, -15, 2, -7, -12, 2, 3] print(max(a), max(x for x in a if x != max(a))) 

Или ещё вариант с фильтром вместо списочного включения:

print(max(a), max(filter(lambda x: x != max(a), a))) 

P.S. Я потестировал скорость, в общем, лучше прямо вот так как я написал не делать, а вынести max(a) в отдельную переменную и в однострочнике использовать уже эту переменную, а не дёргать всё время на сравнениях max(a) . Ну и в целом это просто прикольные решения, не самые, конечно, быстрые.

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

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