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

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

  • автор:

Функции 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'

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

Функции min() и max() в Python: находим максимальное и минимальное значение

Функции min() и max() в Python: находим максимальное и минимальное значение

27 апреля 2023
Оценки статьи
Еще никто не оценил статью

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

В этой статье мы рассмотрим синтаксис и примеры использования функций min() и max() .

Синтаксис функций min() и max()

Синтаксис функций min() и max() очень простой и состоит только из одного аргумента - итерируемого объекта, для которого нужно найти минимальное или максимальное значение.

min(iterable, *[, key, default]) max(iterable, *[, key, default]) 

Здесь:

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

Примеры использования функций min() и max()

Давайте рассмотрим несколько примеров использования функций min() и max() на разных типах данных:

Пример 1: Работа с числами

numbers = [5, 2, 8, 1, 9, 3, 6]  min_num = min(numbers) max_num = max(numbers)  print(f"Минимальное число: min_num>") # Минимальное число: 1 print(f"Максимальное число: max_num>") # Максимальное число: 9 

Пример 2: Работа со строками

strings = ["apple", "banana", "cherry", "date"]  min_str = min(strings) max_str = max(strings)  print(f"Минимальная строка: min_str>") # Минимальная строка: apple print(f"Максимальная строка: max_str>") # Максимальная строка: date 

Пример 3: Работа с кортежами

tuples = [(2, 5), (1, 2), (4, 4), (2, 3)]  min_tpl = min(tuples) max_tpl = max(tuples)  print(f"Минимальный кортеж: min_tpl>") # Минимальный кортеж: (1, 2) print(f"Максимальный кортеж: max_tpl>") # Максимальный кортеж: (4, 4) 

Пример 4: Работа с словарями

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

prices = 'apple': 0.5, 'banana': 0.3, 'orange': 0.6, 'pear': 0.4>  print(min(prices)) # 'apple' print(max(prices)) # 'pear' 

Пример 5. Использование min() и max() с key

Функции min() и max() также могут использоваться с функцией key для определения минимального или максимального значения на основе другого критерия. Например, мы можем использовать функцию key для нахождения имени человека с самым длинным именем в списке.

people = ['John', 'Alexandra', 'Bob', 'Peter']  print(max(people, key=len)) # 'Alexandra' print(min(people, key=len)) # 'Bob' 

Заключение

В этом примере мы использовали функцию key=len для того, чтобы сравнить элементы по их длине, а не лексикографически.

В заключение можно сказать, что функции min() и max() являются очень полезными в Python для поиска минимального и максимального элементов в списках, кортежах, словарях и других структурах данных.

Они также могут использоваться для определения минимального или максимального значения на основе других критериев с помощью функции key .

Меню категорий

    Загрузка категорий.

Добро пожаловать в Блог Разработчика Владислава Александровича.

Ведется медленная, но уверенная разработка функционала сайта.

Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023

О функции min в Python

В питоне есть много удобных функций, которые решают всякие мелкие задачки. Одна из таких функций - min() . Она находит минимальный элемент в списке. Например, ниже показан поиск наименьшего числа и поиск самой короткой строки (если коротких много — выберется первая по алфавитному порядку):

numbers = [4, 1, 2, 5] min(numbers) # 1 words = ['abcd' 'ab', 'a', 'b', 'abcde'] min(words) # 'a' 

Самое главное, что эта функция умеет искать минимальное значение среди любых типов данных, доступных в питоне. Давайте найдём автора с наименьшим количеством постов. Есть список авторов блога: словари с именем автора и количеством его постов:

users = [ 'username': 'Даша', 'posts': 25>, 'username': 'Валера', 'posts': 10>, 'username': 'Ибрагим', 'posts': 56>, ] 

Здесь подошла бы функция min() , но Python не умеет сравнивать словари напрямую. Нужно сказать ему, что сравнивать нужно по значению ключа 'posts' .

К счастью, создатели языка предвидели такой случай и ввели опциональный параметр key . Он принимает на вход функцию, которая для каждого автора вернёт количество его постов. min поймёт, что сравнивать нужно по ним:

def get_user_posts(user): return user['posts'] min(users, key=get_user_posts) # Вернёт 

Функция get_user_posts , получает на вход пользователя user , достаёт количество его постов и возвращает наружу return user['posts'] . Затем, мы передаём эту функцию в min() . Обратите внимание, что get_user_posts передаётся без скобок, подобно коллбэку! Функция min будет вызывать её самостоятельно, во время поиска.

Читать далее

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

минимальный элемент массива 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) 

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

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