max() funksiyası verilmiş ardıcıllığın (sətir, siyahı və kortej) və ya kolleksiyanın (çoxluq və lüğət) ən böyük elementini qaytarır. Bu funksiya həmçinin iki və daha çox parametr arasından ən böyüyünü tapmaq üçün də istifadə edilir.
Beləliklə max() funksiyasının iki cür yazılış forması vardır.
1. Ardıcıllığın/kolleksiyanın ən böyük elementini tapmaq üçün:
max(iterable, *iterables, key, default)
Gəlin parametrləri nəzərdən keçirək.
- iterable – ardıcıllıq (sətir, siyahı və kortej) və ya kolleksiya (çoxluq və lüğət) tiplərində ola bilər.
- *iterables (istəyə bağlı) – birdən çox ardıcıllıq/kolleksiya verilə bilər.
- key (istəyə bağlı) – ardıcıllığın/kolleksiyanın elementlərinə müqayisədən öncə tətbiq edilən funksiyadır. Default qiyməti None olaraq təyin edilib, bu halda müqayisə bir-başa olaraq aparılır.
- default (istəyə bağlı) – əgər verilmiş ardıcıllıq/kolleksiya boşdursa, default olaraq göstərilən qiymət qaytarılır. Defaul qiymət təyin edilməmişsə və verilmiş ardıcıllıq/kolleksiya da boşdursa, o zaman xəta qeydə alınır.
Bir neçə misalları nəzərdən keçirək:
>>> nums = [3, -2, 8, -5, 10, 6]
>>> max_num = max(nums)
>>> print("Ən böyük element:", max_num)
Ən böyük element: 10
>>>
Yuxarıdakı misalda biz bir ardıcıllıq verdik və max() funksiyası bu ardıcıllığın ən böyük elementini tapdı.
Aşağıdakı misallarda key parametri istifadə edilir:
>>> lets = ["c", "b", "a", "Y", "Z"]
>>> print(max(lets, key = str.lower))
Z
>>>
Burada ardıcıllıq kimi hərflər (sətir tipli siyahı) verilmişdir, key olaraq isə sətrin böyük hərflərini kiçik hərflərə çevirən lower() metodu təyin edilmişdir. Bu zaman öncə siyahının bütün elementləri kiçik hərfə çevriləcək və yalnız bundan sonra ən böyük element (kiçik hərfinin kodu ən böyük olan simvol) tapılacaq.
Başqa bir misalı nəzərdən keçirək:
>>> nums = [3, -2, 8, -5, 10, 6]
>>> max_sqr_num = max(nums, key = lambda i: i**2)
>>> print("Kvadratı ən böyük element:", max_sqr_num)
Kvadratı ən böyük element: 10
>>>
Burada key parametri kimi ədədi kvadrata yüksəldən anonim funksiyadan (lambda-ifadə) istifadə edirik. Bu zaman max() funksiyası bizə hansı elementin kvadratı ən böyük olacaqsa o elementi qaytarır.
max() funksiyasında birdən çox ardıcıllıq verilə bilər:
>>> max_list = max([1,2],[1,2,3],[1,2,3,4])
>>> print("Ən uzun siyahı:", max_list)
Ən uzun siyahı: [1, 2, 3, 4]
>>>
Bu halda bizə elementlərinin sayı ən çox olan ardıcıllıq (indiki halda siyahı) qaytarılacaq.
Qeyd edildiyi kimi max() funksiyasında ardıcıllıq kimi sətir verilə bilər:
>>> max_let = max("PYTHON")
>>> print(max_let)
Y
>>>
Bu zaman sətrin kodu ən böyük olan simvolu qaytarılacaq.
İndi isə gəlin max() funksiyasında birdən çox sətir verilməsi halına baxaq:
>>> prog_langs = ["Python", "Delphi", "Java"]
>>> largest_string = max(prog_langs);
>>> print(largest_string)
Python
>>>
Bu zaman əlifba sırasına uyğun olaraq ən uzaqdakı sətir (indiki halda Python) qaytarılacaq. Bunun səbəbi P simvolunun kodunun D və J simvollarının kodlarından böyük olmasıdır.
Əgər max() funksiyasını tətbiq etdiyiniz ardıcıllığın boş olma ehtimalı varsa, default parametrindən istifadə etməyiniz məsləhət görülür:
>>> m = []
>>> print(max(m, default = "Siyahı boşdur!"))
Siyahı boşdur!
>>>
max() funksiyasında kolleksiya kimi lüğətlərdən (dict tipi) istifadə oluna bilər:
>>> digs = {1: "bir", 2: "iki", 3: "üç", 4: "dörd", 5: "beş"}
>>> print(max(digs))
5
>>>
Yuxarıdakı misalda max() funksiyası lüğətin ən böyük açarını qaytarır.
Digər misalı nəzərdən keçirək:
>>> digs = {1: "bir", 2: "iki", 3: "üç", 4: "dörd", 5: "beş"}
>>> max_digs_value = max(digs, key = lambda k: digs[k])
>>> print(max_digs_value)
3
>>>
Burada key parametri kimi açara görə qiyməti verən anonim funksiyadan istifadə edirik. Bu zaman max() funksiyası bizə qiyməti ən böyük olan (əlifba sırasına görə) açarı qaytaracaq.
2. İki və daha çox parametr arasından ən böyüyünü tapmaq üçün:
max(arg1, arg2, *args, key)
Gəlin parametrləri nəzərdən keçirək.
- arg1 – obyektdir; ədəd, sətir və s. tipdə ola bilər.
- arg2 – obyektdir; ədəd, sətir və s. tipdə ola bilər.
- *args (istəyə bağlı) – birdən çox obyekt verilə bilər.
- key (istəyə bağlı) – obyektlərə müqayisədən öncə tətbiq edilən funksiyadır. Default qiyməti None olaraq təyin edilib, bu halda müqayisə bir-başa olaraq aparılır.
Aşağıdakı misalları özünüz nəzərdən keçirin:
>>> max_num = max(4, 15, -23, 5)
>>> print(max_num)
15
>>>
>>> max_num = max(4, 15, -23, 5, key = abs)
>>> print(max_num)
-23
>>>
>>> max_fr = max("alma", "armud", "ananas")
>>> print(max_fr)
armud
>>>
>>> max_fr_len = max("alma", "armud", "ananas", key = len)
>>> print(max_fr_len)
ananas
>>>