CodeGym /Kurslar /Python SELF AZ /Siyahıların sıraya düzülməsi

Siyahıların sıraya düzülməsi

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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}]
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION