8.1 Siyahının sıraya düzülməsi
Python-da siyahının sıraya düzülməsi — vacib bir əməliyyatdır və bu, məlumatları təhlil etmək və ya təqdim etmək üçün qaydaya salmağa imkan verir. Python fərqli vəziyyətlər və tələb olunan nəticələrdən asılı olaraq siyahıların sıraya düzülməsi üçün bir neçə üsul təklif edir.
sort()
metodu
sort()
metodu siyahını olduğu yerdə sıraya düzür, yəni orijinal siyahını dəyişdirir. Bu metod olduqca səmərəlidir və parametrlər vasitəsilə sıralanmanı tənzimləməyə imkan verir.
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # [1, 2, 5, 9] qaytarır
Siyahını tərsinə sıraya düzəltmək üçün reverse=True
parametrindən istifadə etmək mümkündür.
numbers = [5, 2, 9, 1]
numbers.sort(reverse=True)
print(numbers) # [9, 5, 2, 1] qaytarır
sorted()
funksiyası
sorted()
funksiyası orijinala toxunmadan onun sıraya düzülmüş yeni bir versiyasını yaradır. Bu funksiyanın üstünlüyü ondadır ki, orijinal siyahı dəyişdirilmir və bu, adətən məlumatları dəyişmədən saxlamaq lazım olduqda, sorted()
metodunu daha üstün edir.
numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 2, 5, 9] qaytarır
print(numbers) # Orijinal siyahı dəyişilməz qalır [5, 2, 9, 1]
Əsas fərqi yadda saxlamaq vacibdir: sort()
orijinal siyahını dəyişdirir, sorted()
isə sıraya düzülmüş yeni bir siyahı qaytarır və orijinalı olduğu kimi saxlayır. sort()
istifadə edin, əgər məlumatları yerində dəyişmək lazımdırsa, sorted()
isə məlumatların orijinal ardıcıllığını saxlamaq istəyirsinizsə.
8.2 Açar vasitəsilə sıralama
Bəzən mürəkkəb sıralama ssenarilərinə ya da bəzi parametrləri nəzərə almadan sıralama lazım olur. Bu halda “açar vasitəsilə sıralama” kömək edir. Onu istifadə etmək üçün sort()
metoduna ya da sorted()
funksiyasına xüsusi bir parametr — key
ötürmək lazımdır.
key
parametrinin dəyəri olaraq elementləri müqayisə etmək üçün istifadə olunacaq funksiyanı ötürmək lazımdır.
Hərf ölçüsü nəzərə alınmadan mətnləri müqayisə etmə
Müqayisə etməzdən əvvəl bütün mətnlər kiçik hərfə çevrilir
alist = ["banana", "Orange", "Kiwi", "cherry"]
alist.sort(key=str.lower)
print(alist) # Çıxış: ['banana', 'cherry', 'Kiwi', 'Orange']
List tuple-ların sıralanma nümunəsi
Tutaq ki, sizdə tələbələrdən ibarət siyahı var və hər bir element tələbənin adını və qiymətini ehtiva edən (tuple)
-dir. Siz tələbələri onların qiymətlərinə görə sıralamaq istəyirsiniz:
students = [('Alice', 88), ('Bob', 75), ('Carol', 96)]
def get_grade(student):
return student[1]
students.sort(key=get_grade)
print(students) # Çıxış: [('Bob', 75), ('Alice', 88), ('Carol', 96)]
List dictionary-lərin sıralanma nümunəsi
Yaxud sizdə tələbələr haqqında məlumat ehtiva edən dictionary-lərdən ibarət bir siyahı var. Onları qiymətlərə görə sıralamaq üçün bu tip kod yazmaq lazımdır:
students = [
{'name': 'Alice', 'grade': 88},
{'name': 'Bob', 'grade': 75},
{'name': 'Carol', 'grade': 96}
]
def get_grade(student):
return student['grade']
sorted_students = sorted(students, key=get_grade)
print(sorted_students) # Çıxış: [{'name': 'Bob', 'grade': 75}, {'name': 'Alice', 'grade': 88}, {'name': 'Carol', 'grade': 96}]
GO TO FULL VERSION