Всіх вітаю! У цій невеличкій статті ми розберемо вбудовані функції min() та max(). Насправді дуже прості суті цих функцій, тож оглянемо кожну з них по черзі.
Функція max()
Функція max() приймає ітерований тип даних (списки, кортежі, множини) та знаходить елемент із максимальним значенням у ньому.
Ось таким чином ми можемо її застосувати:
data = [37, 25, 64, 102, 0, -12, 90, 81, 4]
max_value = max(data)
print("Max value:", max_value)Max value: 102Також max() приймає параметр key, у якому ми можемо вказати функцію за якою будемо знаходити найбільше значення.
Ось приклад такої реалізації у коді:
import math
data = [37, 25, 64, 102, 0, -12, 90, 81, 4]
max_value = max(data, key=math.cos)
print(max_value)Max value: 0У даному випадку ми беремо від кожного елементу списку косинус і за таким принципом визначаємо найбільший елемент у списку. Як бачимо, тепер результат вийшов зовсім іншим.
Тепер візьмемо синус замість косинуса. У результаті маємо:
data = [37, 25, 64, 102, 0, -12, 90, 81, 4]
max_value = max(data, key=math.sin)
print("Max value:", max_value)Max value: 102Також ми можемо працювати з рядками. У такому разі найбільше значення буде те, яке має більший Unicode код. Ось приклад:
symbols = ["A", "B", "C", "D", "E"]
max_value = max(symbols)
print("Max value:", max_value)Max value: EУ даному випадку E має найбільший серед усіх іншим елементів Unicode код. У цьому легко переконатися за допомогою функції ord(), яка приймає рядок із символом та повертає його позицію у Unicode. Ми можемо перевірити кожен елемент на їхню позицію та вивести це у консоль:
symbols = ["A", "B", "C", "D", "E"]
for values in symbols:
print(f"{values}: {ord(values)}")A: 65
B: 66
C: 67
D: 68
E: 69Як бачимо, E дійсно найбільше значення тут.
Також наведемо приклад зі словами у списку. У такому випадку функції max() визначає найбільше значення при порівнянні позиції кожної літери слів. Тобто, якщо літери у слові мають більші значення за таблицею Unicode, то це слово буде вважатися більшим. Ось так вийшло у нас:
symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]
max_value = max(symbols)
print("Max value:", max_value)Max value: StraightЯк max() визначила, що Straight найбільше? Давайте розберемося. Отже, спочатку вона порівняла перші літери усіх слів, а коли знайшла серед них найбільше за позицією у Unicode, просто почала порівнювати інші літери у словах Same та Straight. Літера t у слові Straight виявилася більшою за a, тому слово Straight є найбільшим.
Ми можемо це перевірити, якщо пройдемося по кожній літері у словах зі списку:
symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]
max_value = max(symbols)
print("Max value:", max_value)
print(f"\n"
f"Word: {symbols[0]}")
for values in symbols[0]:
print(f"{values}: {ord(values)}")
print(f"\n"
f"Word: {symbols[1]}")
for values in symbols[1]:
print(f"{values}: {ord(values)}")
print(f"\n"
f"Word: {symbols[2]}")
for values in symbols[2]:
print(f"{values}: {ord(values)}")
print(f"\n"
f"Word: {symbols[3]}")
for values in symbols[3]:
print(f"{values}: {ord(values)}")
print(f"\n"
f"Word: {symbols[4]}")
for values in symbols[4]:
print(f"{values}: {ord(values)}")Max value: Straight
Word: Same
S: 83
a: 97
m: 109
e: 101
Word: Intellect
I: 73
n: 110
t: 116
e: 101
l: 108
l: 108
e: 101
c: 99
t: 116
Word: Cold
C: 67
o: 111
l: 108
d: 100
Word: Straight
S: 83
t: 116
r: 114
a: 97
i: 105
g: 103
h: 104
t: 116
Word: Food
F: 70
o: 111
o: 111
d: 100Як бачимо, слова Same та Straight починаються з S, а ця літера має код 83. Саме тому наступним кроком max() почала порівнювати літери a та t, де t виявилася більшим (97 < 116).
Функція min()
Функція min() приймає ітерований тип даних та знаходить елемент із мінімальним значенням у ньому.
Використовуємо її так само як і попередню функцію:
data = [37, 25, 64, 102, 0, -12, 90, 81, 4]
min_value = min(data)
print("Min value:", min_value)Min value: -12Також приклади з параметром key:
data = [37, 25, 64, 102, 0, -12, 90, 81, 4]
min_value = min(data, key=math.exp)
print("Min value:", min_value)Min value: -12У цьому прикладі ми визначили найменше значення за експонентою. Тобто брали експоненту з кожного елемента зі списку. Тепер можемо прибрати від’ємні значення та знайти найменше значення за факторіалом, як у цьому прикладі:
data = [37, 25, 64, 102, 0, 12, 90, 81, 4]
min_value = min(data, key=math.factorial)
print("Min value:", min_value)Min value: 0А тепер спробуємо знайти найменшезначення серед нашого списку з рядками:
symbols = ["A", "B", "C", "D", "E"]
min_value = min(symbols)
print("Min value:", min_value)Min value: AТепер знайдемо найменше значення серед слів:
symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]
min_value = min(symbols)
print("Min value:", min_value)Min value: ColdПриклад використання обох функцій у програмі
Тепер думаю настав час розглянути приклад викоирстання обох функцій на у більш цікавому коді. Ось тут повна програма:
import random
data = []
def data_creation():
while len(data) < 10:
random_element = random.randint(-10, 100)
data.append(random_element)
if len(data) >= 10:
break
print("Created data:", data)
def data_analysis():
max_value = max(data)
min_value = min(data)
middle_value = max_value + min_value / 2
print("Max value:", max_value)
print("Min value:", min_value)
print("Middle value:", middle_value)
data_creation()
data_analysis()Created data: [46, 97, 16, 53, 22, 20, 20, 74, 70, 53]
Max value: 97
Min value: 16
Middle value: 105.0Отже, пропоную почати поступовий розбір коду. Почнемо з того, шо напочатку ми імпортуємо модуль random:
import randomДалі створюємо поки що пустий словник під назвою data:
data = []1. Щодо функції data_creation().
Створюємо цикл while, у якому ставимо умову, щоб довжина списку data повинна бути менше 10:
while len(data) < 10:Генеруємо випадкове число від -10 до 100 та додаємо його у список data:
random_element = random.randint(-10, 100)
data.append(random_element)Якщо довжина списку data більше або дорівнює 10, то ми зупиняємо цикл:
if len(data) >= 10:
breakВиводимо список з випадково згенерованих чисел:
print("Created data:", data)2. Щодо функції data_analysis().
Визначаємо найбільше та найменше значення списку data:
max_value = max(data)
min_value = min(data)Обчислюємо середнє арифметичне значення між найбільшим та найменшим елементами списку:
middle_value = max_value + min_value / 2Виводимо значення:
print("Max value:", max_value)
print("Min value:", min_value)
print("Middle value:", middle_value)Наприкінці програми викликаємо створені функції:
data_creation()
data_analysis()На цьому все. Це був останній приклад, який ми розібрали.
Висновок
У цій статті ми розібрали функції max() та min() у Python. Також ми розглянули нехай й прості, але все ж приклади використання цих вбудованих функцій. Сподіваюся, що даний матеріал вам сподобався! Дякую за увагу!