Решите задачи на 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
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Как правильно решить задачу по поиску двух максимальных чисел в списке?

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

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) . Ну и в целом это просто прикольные решения, не самые, конечно, быстрые.