Python Listesi sıralaması ()

Sort () yöntemi, belirli bir listenin öğelerini belirli bir artan veya azalan düzende sıralar.

sort()Yöntemin sözdizimi şöyledir:

 list.sort (anahtar =…, ters =…)

Alternatif olarak, aynı amaç için Python'un yerleşik sıralanmış () işlevini de kullanabilirsiniz.

 sıralı (liste, anahtar =…, ters =…)

Not:sort() ve arasındaki en basit fark sorted(): sort()listeyi doğrudan değiştirir ve herhangi bir değer döndürmezken sorted(), listeyi değiştirmez ve sıralı listeyi döndürür.

sort () Parametreler

Varsayılan olarak, sort()herhangi bir ekstra parametre gerektirmez. Ancak, iki isteğe bağlı parametresi vardır:

  • reverse - TrueSıralanan liste tersine çevrilir (veya Azalan düzende sıralanır)
  • anahtar - sıralama karşılaştırması için anahtar görevi gören işlev

Sort () değerinden dönüş değeri

sort()Yöntem herhangi bir değer döndürmez. Aksine, orijinal listeyi değiştirir.

Bir işlevin orijinal listeyi değiştirmek yerine sıralanan listeyi döndürmesini istiyorsanız, kullanın sorted().

Örnek 1: Verilen bir listeyi sıralama

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)

Çıktı

 Sıralanmış liste: ('a', 'e', ​​'i', 'o', 'u')

Azalan düzende sırala

sort()Yöntem, bir kabul eden reverse, isteğe bağlı bir değişken olarak parametre.

Ayar reverse = True, listeyi azalan sırada sıralar.

 list.sort(reverse=True)

Alternatif olarak sorted(), aşağıdaki kodu kullanabilirsiniz.

 sorted(list, reverse=True)

Örnek 2: Listeyi Azalan düzende sıralayın

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)

Çıktı

 Sıralanmış liste (Azalan düzende): ('u', 'o', 'i', 'e', ​​'a')

Tuşu kullanarak özel işlevle sıralayın

Sıralama için kendi uygulamanızı istiyorsanız, sort()yöntem ayrıca bir keyişlevi isteğe bağlı bir parametre olarak kabul eder .

Anahtar işlevin sonuçlarına göre verilen listeyi sıralayabilirsiniz.

 list.sort(key=len)

Alternatif olarak sıralı:

 sorted(list, key=len)

İşte lenPython'un bir elementin uzunluğunu saymak için yerleşik işlevi.

Liste, her bir elemanın uzunluğuna göre en düşük sayıdan en yükseğe doğru sıralanır.

Bir demetin varsayılan olarak ilk parametresi kullanılarak sıralandığını biliyoruz. sort()İkinci öğeyi kullanarak sıralama için yöntemin nasıl özelleştirileceğine bakalım .

Örnek 3: tuşunu kullanarak listeyi sıralayın

 # take second element for sort def takeSecond(elem): return elem(1) # random list random = ((2, 2), (3, 4), (4, 1), (1, 3)) # sort list with key random.sort(key=takeSecond) # print list print('Sorted list:', random)

Çıktı

 Sıralanmış liste: ((4, 1), (2, 2), (1, 3), (3, 4))

Başka bir örnek alalım. Her unsurun bir sözlük olduğu bir ofis çalışanları hakkında bir bilgi listemiz olduğunu varsayalım.

Listeyi şu şekilde sıralayabiliriz:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # custom functions to get employee info def get_name(employee): return employee.get('Name') def get_age(employee): return employee.get('age') def get_salary(employee): return employee.get('salary') # sort by name (Ascending order) employees.sort(key=get_name) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=get_age) print(employees, end='') # sort by salary (Descending order) employees.sort(key=get_salary, reverse=True) print(employees, end='')

Çıktı

(('Ad': 'Alan Turing', 'yaş': 25, 'maaş': 10000), ('Ad': 'John Hopkins', 'yaş': 18, 'maaş': 1000), ('Ad ':' Mikhail Tal ',' yaş ': 40,' maaş ': 15000), (' İsim ':' Sharon Lin ',' yaş ': 30,' maaş ': 8000)) ((' İsim ':' John Hopkins ',' yaş ': 18,' maaş ': 1000), (' Ad ':' Alan Turing ',' yaş ': 25,' maaş ': 10000), (' Ad ':' Sharon Lin ', 'yaş': 30, 'maaş': 8000), ('İsim': 'Mikhail Tal', 'yaş': 40, 'maaş': 15000)) (('İsim': 'Mikhail Tal', 'yaş' : 40, 'maaş': 15000), ('Ad': 'Alan Turing', 'yaş': 25, 'maaş': 10000), ('İsim ':' Sharon Lin ',' yaş ': 30,' maaş ': 8000), (' İsim ':' John Hopkins ',' yaş ': 18,' maaş ': 1000))

Burada, ilk durum için, özel fonksiyonumuz her çalışanın adını döndürür. İsim a olduğundan string, Python varsayılan olarak alfabetik sıraya göre sıralar.

İkinci durum için, age ( int) döndürülür ve artan sırada sıralanır.

Üçüncü durum için, işlev maaş ( int) değerini döndürür ve kullanılarak azalan sırada sıralanır reverse = True.

Fonksiyon tek satırda özetlenebildiğinde lambda fonksiyonunu kullanmak iyi bir uygulamadır. Yani yukarıdaki programı şu şekilde de yazabiliriz:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # sort by name (Ascending order) employees.sort(key=lambda x: x.get('Name')) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=lambda x: x.get('age')) print(employees, end='') # sort by salary (Descending order) employees.sort(key=lambda x: x.get('salary'), reverse=True) print(employees, end='')

Çıktı

(('Ad': 'Alan Turing', 'yaş': 25, 'maaş': 10000), ('Ad': 'John Hopkins', 'yaş': 18, 'maaş': 1000), ('Ad ':' Mikhail Tal ',' yaş ': 40,' maaş ': 15000), (' İsim ':' Sharon Lin ',' yaş ': 30,' maaş ': 8000)) ((' İsim ':' John Hopkins ',' yaş ': 18,' maaş ': 1000), (' Ad ':' Alan Turing ',' yaş ': 25,' maaş ': 10000), (' Ad ':' Sharon Lin ', 'yaş': 30, 'maaş': 8000), ('İsim': 'Mikhail Tal', 'yaş': 40, 'maaş': 15000)) (('İsim': 'Mikhail Tal', 'yaş' : 40, 'maaş': 15000), ('Ad': 'Alan Turing', 'yaş': 25, 'maaş': 10000), ('İsim ':' Sharon Lin ',' yaş ': 30,' maaş ': 8000), (' İsim ':' John Hopkins ',' yaş ': 18,' maaş ': 1000))

Lambda işlevleri hakkında daha fazla bilgi edinmek için Python Lambda Functions sayfasını ziyaret edin.

Ilginç makaleler...