минимальный элемент массива python
Причина в том, что вы каждую итерацию цикла перезаписываете min нулевым элементом массива. Строку min = massiv[0] нужно вынести до цикла, вот так:
massiv = [] dlina = int(input()) for y in range(0, dlina): massiv.append(int(input())) min = massiv[0] for i in range(0, len(massiv)): if massiv[i]
Отслеживать
ответ дан 16 ноя 2021 в 22:06
565 2 2 серебряных знака 16 16 бронзовых знаков
Вы постоянно устанавливаете минимум в цикле, что неправильно
Так же я бы заменил цикл
massiv = [] dlina = int(input()) for y in range(0, dlina): massiv.append(int(input())) min_value = massiv[0] for number in massiv: if number < min_value: min_value = number print(min_value)
Отслеживать
ответ дан 16 ноя 2021 в 22:06
Andrey Maslov Andrey Maslov
2,968 1 1 золотой знак 6 6 серебряных знаков 11 11 бронзовых знаков
во первых не очень хорошо использовать в качестве названия переменной название существующей функции
а ошибка в том, что присваивание минимального значения происходит внутри цикла, вынесите ее наружу цикла и все будет хорошо
ну и код поджать можно вот так еще:
data = [int(input()) for y in range(0, int(input()))] value_min = data[0] for value in data: value_min = value if value_min > value else value_min print(value_min)
Получение индекса максимального или минимального значения в списке в Python
Списки являются одним из самых используемых типов данных в Python. Они позволяют хранить наборы данных различных типов и предоставляют большой набор функций для работы с этими данными. Однако, при работе со списками, часто возникает задача получения не только значения максимального или минимального элемента, но и его индекса.
Выполнение этой задачи в Python возможно разными способами. Рассмотрим два из них на примере списка целых чисел.
numbers = [5, 1, 9, 3, 7]
В данном списке максимальное значение 9, а минимальное 1.
Использование встроенных функций max(), min() и index()
Первый способ заключается в использовании встроенных функций Python max() , min() и index() . Функции max() и min() возвращают максимальное и минимальное значение в списке соответственно. Функция index() возвращает индекс первого вхождения указанного элемента в список.
max_value = max(numbers) max_index = numbers.index(max_value) print(max_index) # вывод: 2 min_value = min(numbers) min_index = numbers.index(min_value) print(min_index) # вывод: 1
Использование функции enumerate()
Второй способ заключается в использовании функции enumerate() . Эта функция применяется для итерируемых объектов и возвращает пары вида (индекс, значение).
max_index, max_value = max(enumerate(numbers), key=lambda pair: pair[1]) print(max_index) # вывод: 2 min_index, min_value = min(enumerate(numbers), key=lambda pair: pair[1]) print(min_index) # вывод: 1
В данном случае функции max() и min() используются с аргументом key , который определяет по какому принципу выбирать максимальное или минимальное значение. В качестве этого аргумента передается функция, которая возвращает второй элемент пары, то есть само значение элемента списка.
Таким образом, с помощью встроенных функций Python можно легко и быстро решить задачу получения индекса максимального или минимального значения в списке.
Функции min и max в Python
В языке программирования Python есть встроенные функции поиска минимума и максимума. Им можно передавать как один объект, так и непосредственно множество однотипных объектов. Если передается один объект, то им может быть список, любая другая коллекция или итерируемый объект.
Если передается один список, то в нем находится минимум или максимум, которые возвращаются функциями min() и max() .
>>> a = [11,8,12,0] >>> min(a) 0 >>> max(a) 12
Если передается несколько списков, то целиком возвращается один из переданных списков. При этом сравнение происходит поэлементно: сначала сравниваются первые элементы списков. Если они не равны, то функция min() вернет тот список, первый элемент которого меньше, max() - наоборот. Если первые элементы равны, то будут сравниваться вторые и т. д.
>>> a = [11,8,12,0] >>> b = [11,7,123,9] >>> m = min(a,b) >>> print(m, type(m)) [11, 7, 123, 9] >>> c = [11,8,12] >>> min(a,c) [11, 8, 12]
Функциям min() и max() можно непосредственно передавать множество чисел:
>>> max(3, 8, -3, 12, 9) 12
Таким образом, если функции получают несколько объектов, то сравниваются сами объекты. И неважно какого они типа: списки, числа или что-то другое.
Однако нельзя передать числа и строки или смешанный список. В этом случае функция возвращает ошибку:
>>> s = ['a','d',1] >>> min(s) Traceback (most recent call last): File "", line 1, in TypeError: unorderable types: int() < str()
>>> s = ['a','d','ee'] >>> min(s) 'a'
В функциях min() и max() можно указать необязательный именной параметр key . Ему присваивается одноаргументная функция, которая выполняет какое-то предварительное действие над элементами списка.
>>> a = [8,-11,4,2,-5] >>> max(a) 8 >>> max(a,key=abs) -11
Здесь во втором случае находится максимум среди абсолютных значений чисел. То есть к каждому элементу списка применяется встроенная в Python функция abs . Однако применить ее к целым спискам нельзя:
>>> max(a,b,key=abs) Traceback (most recent call last): File "", line 1, in TypeError: bad operand type for abs(): 'list'
Python в СРЦОД: 3. Поиск в двумерном массиве
Напишите программу, которая находит минимальный и максимальный элементы в матрице. Если в матрице есть несколько одинаковых минимальных (максимальных) элементов, нужно найти индексы первого такого элемента в порядке обхода по строкам: сверху вниз, слева направо.
Входные данные
В первой строке записаны через пробел размеры матрицы: количество строк N и количество столбцов M ( 1 ≤ N , M ≤ 100 ). В следующих N строках записаны строки матрицы, в каждой – по M натуральных чисел, разделённых пробелами.
Выходные данные
В первой строке программа должна вывести индексы минимального элемента (строку и столбец), а затем – его значение. Нумерация строк и столбцов начинается с единицы. Все числа разделены пробелами. Во второй строке выводится информация о максимальном элементе в том же формате.
Входные данные
4 5 1 3 2 54 24 75 12 3 46 9 13 26 56 9 12 14 90 97 6 34
