Python'da bir listeyi sıralamak, öğelerini artan veya azalan düzende düzenlemenizi sağlar.

Bunu yapmak için uzun kod blokları yazmak yerine, Python'un herhangi bir liste veya dizideki öğeleri sıralamanıza izin veren yerleşik bir yöntemi vardır. Bunun nasıl yapılacağını bu yazıda açıklayacağız.

Python'da Liste Nasıl Sıralanır

Python kullanarak bir liste veya dizideki öğeleri sıralayabilirsiniz. çeşit() yöntem.

çeşit() Python'daki yöntem iki isteğe bağlı bağımsız değişkeni kabul eder ve sözdizimi şuna benzer:

list.sort (anahtar = işlev, ters = Doğru / Yanlış)

Varsayılan olarak çeşit() yöntem, bir listenin öğelerini artan sırada düzenler:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
baskı (myList)
Çıktı: ['A', 'B', 'C', 'D', 'F']

Kullanabilirsiniz tersine çevirmek listeyi azalan sırada görüntülemek için bağımsız değişken:

myList = ["C", "D", "B", "A", "F"]
myList.sort (ters = True)
baskı (myList)
Çıktı: ['F', 'D', 'C', 'B', 'A']

Listedeki öğeleri her dizinin uzunluğuna göre de düzenleyebilirsiniz.

instagram viewer

Bunu yapmak için bir işlev oluşturun ve bunu çeşit() isteğe bağlı yöntemi kullanarak anahtar argüman:

myList = ["MUO", "Python", "JavaScript", "Sırala", "Sıralama Listeleri"]
def sortLength (öğe):
iade len (öğe)
myList.sort (reverse = True, key = sortLength)
baskı (myList)
Çıktı: ['JavaScript', 'Sıralama Listeleri', 'Python', 'Sırala', 'MUO']

Python'da Sözlük Listesi Nasıl Sıralanır

Kullanabilirsiniz çeşit() sözlüklerin bir listesini de sıralama yöntemi.

Aşağıdaki sözlükteki görevleri zamanlarına göre sıralayalım:

myArray = [
{"Görev": "Yıkama", "Süre": 12.00},
{"Görev": "Futbol", "Saat": 24.00},
{"Görev": "Sırala", "Zaman": 17.00},
{"Görev": "Kod", "Saat": 15.00}
]
def sortByTime (öğe):
öğeyi iade et ["Zaman"]
myArray.sort (key = sortByTime)
yazdır (dizim)

Zaman değerleri tam sayı olduğundan, yukarıdaki kod bloğu diziyi görev süresine göre yeniden düzenler.

İlişkili: Python'da Diziler ve Listeler Nasıl Çalışır?

Yukarıdaki diziyi zamana göre sıralamanın yanı sıra, dizeler olan görevleri kullanarak alfabetik olarak da düzenleyebilirsiniz.

Örnek dizide dizeye göre sıralamak için, yalnızca Zaman köşeli parantez içinde Görev:

myArray = [
{"Görev": "Yıkama", "Süre": 12.00},
{"Görev": "Futbol", "Saat": 24.00},
{"Görev": "Sırala", "Zaman": 17.00},
{"Görev": "Kod", "Saat": 15.00}
]
def sortByTime (öğe):
öğeyi iade et ["Görev"]
myArray.sort (key = sortByTime)
yazdır (dizim)

Ayrıca ayarlayarak görevleri ters sırada da sıralayabilirsiniz. tersine çevirmek doğru:

myArray.sort (key = sortByTime, reverse = True)

Ayrıca şunları da yapabilirsiniz lambda işlevi kullan ile çeşit() daha temiz kod için:

myArray.sort (key = lambda getTime: getTime ["Time"])
yazdır (dizim)

Yuvalanmış Bir Python Listesi Nasıl Sıralanır

İç içe geçmiş bir tuple listesini, bu listedeki her iç içe yerleştirilmiş öğenin dizinine göre sıralayabilirsiniz.

Örneğin, aşağıdaki kod, listeyi artan düzende sıralamak için her demetteki üçüncü öğeyi kullanır:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
[2] döndür
Alist.sort (key = sortByThirdIndex)
baskı (Alist)
Çıktı: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Yukarıdaki çıktıda, her demetteki üçüncü öğe, sıfırdan yirmi art arda artar.

İndeksleyemeyeceğiniz için bunun bir Python setiyle çalışmadığını unutmayın. Üstelik listedeki her yuva aynı veri türüne ait olmalıdır.

İlişkili: Python'da Küme Nedir ve Nasıl Oluşturulur

Ancak, çıktıyı azalan sırada düzenlemek için:

Alist.sort (anahtar = getIndex, ters = Doğru)
baskı (Alist)
Çıktı: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Bakalım bunun nasıl göründüğünü bir lambda işlevi de:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sıralı (Alist, anahtar = lambda a: a [2])
baskı (yeniListe)
Çıktı: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Sorted () Yöntemini Kullanarak Bir Listeyi Sıralama

Alternatif olarak, sıralanmış () yöntem.

Benzer şekilde çalışmasına rağmen çeşit() yöntem, orijinali değiştirmeden yeni bir sıralı liste oluşturur. Sözdizimi düzeni de biraz farklıdır.

İçin sözdizimi sıralanmış () yöntem genellikle şöyle görünür:

sıralı (liste, anahtar = işlev, ters = Doğru / Yanlış)

Yani bir listeyi kullanarak sıralanmış () yöntem, sıralı liste için yeni bir değişken oluşturmanız gerekir:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
[2] döndür
newList = sıralı (Alist, key = getIndex)
baskı (yeniListe)
Çıktı: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

sıralanmış () yöntem ayrıca bir lambda anahtarı olarak işlev görür:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sıralı (Alist, anahtar = lambda a: a [2])
baskı (yeniListe)
Çıktı: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Liste Sıralamasını Nereye Uygulayabilirsiniz?

Verimli programlama için Python sıralama yönteminin sağlam bir şekilde kavranması gerekir. Bir listenin veya dizinin nasıl geleceğini kontrol etmenizi sağlar ve bunu her zaman gerçek hayattaki projelerde uygulayabilirsiniz. Örneğin, bir Python listesini sıralamak, verileri bir API'den veya bir veritabanından yeniden düzenlerken kullanışlı olabilir, bu nedenle bir son kullanıcı için daha mantıklıdır.

E-posta adresi
Python'da Liste Nasıl Eklenir

Python'da listelerle mi çalışıyorsunuz? Listelerle çalışırken Python ekleme işlevini kullanma hakkında bilmeniz gerekenler.

Sonrakini Oku

İlgili konular
  • Programlama
  • Python
  • Kodlama Eğitimleri
Yazar hakkında
Idowu Omisola (66 Makale Yayınlandı)

Idowu, akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlama ile oynar ve sıkıldığında satranç tahtasına geçer, ancak arada bir rutinden uzaklaşmayı da sever. İnsanlara modern teknolojinin etrafındaki yolu gösterme tutkusu, onu daha fazla yazmaya motive ediyor.

Idowu Omisola'dan Daha Fazla

Haber bültenimize abone ol

Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.