Python ile Listeleri Anahtara Göre Sıralama

Giriş: Neden Sıralama?

Python programlama dilinde çalışırken, listelerle sıkça karşılaşırız. Listeler, verileri saklamak ve düzenlemek için kullanışlı bir yapıdır. Ancak, bu verileri istediğimiz sırada görmek bazen önemlidir. Örneğin, bir ürün listesi oluşturuyorsanız, bu ürünleri fiyatlarına ya da isimlerine göre sıralamak isteyebilirsiniz. Bu yazıda, Python’da listeleri anahtara göre nasıl sıralayacağınızı öğreneceksiniz.

Listeleri sıralamak, verileri analiz etmenin ve daha anlamlı hale getirmenin önemli bir yoludur. Ayrıca, kodlarınıza eklediğiniz sıralama işlevleri, programlarınızın daha etkili çalışmasına yardımcı olacaktır. Bu yazıda, listeleri anahtara göre sıralamak için farklı yöntemleri inceleyeceğiz ve adım adım örneklerle detaylandıracağız.

Python’da Liste Sıralama Temelleri

Python, listeleri sıralamak için birkaç yerleşik fonksiyon sunar. En yaygın kullanılan yöntemlerden biri, sort() metodu ve sorted() fonksiyonudur. Her ikisi de benzer şekilde çalışır; ancak bazı farklılıkları bulunmaktadır. Bu bölümde bu iki yöntemi inceleyeceğiz.

sort() metodu, doğrudan bir liste üzerinde çalışır ve bu listeyi sıralar. Örneğin, bir liste tanımladığınızda, bu listenin elemanlarını sıralamak için list.sort() ifadesini kullanabilirsiniz. Bu metot, orijinal listeyi değiştirir ve sıralı hale getirir.

sort() Metodunu Kullanma

sort() metodunu kullanmak oldukça basittir. İlk önce, sıralamak istediğiniz bir liste oluşturun. Daha sonra, sort() metodunu çağırarak bu listenin elemanlarını sıralayabilirsiniz. İşte basit bir örnek:

numbers = [5, 2, 9, 1, 5, 6]

numbers.sort()
print(numbers)  # Çıktı: [1, 2, 5, 5, 6, 9]

Bu örnekte, sayılardan oluşan bir liste oluşturduk ve sort() metodunu kullanarak bu listeyi sıraladık. Çıktıda, liste sıralı hale geldi. Ancak, bu metot yalnızca sayıları değil, aynı zamanda metinleri de sıralayabilir.

Metin Listelerini Sıralama

Metin listelerini sıralamak için de sort() metodunu kullanabilirsiniz. Bu durumda, Python metinleri alfabetik sıraya göre sıralar:

fruits = ['banana', 'apple', 'cherry']

fruits.sort()
print(fruits)  # Çıktı: ['apple', 'banana', 'cherry']

Gördüğünüz gibi, meyve isimleri alfabetik sıraya göre sıralandı. sort() metodu, büyük/küçük harf duyarlıdır, bu yüzden büyük harfle başlayan kelimeler küçük harfle başlayanlardan önce sıralanır.

sorted() Fonksiyonu

Diğer bir yöntem olan sorted() fonksiyonu, orijinal listeyi değiştirmeden sıralama yapar. Bu fonksiyon, sıralanmış yeni bir liste döndürür. Bu, orijinal listenin korunması gereken durumlarda oldukça yararlıdır:

numbers = [5, 2, 9, 1, 5, 6]

sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Çıktı: [1, 2, 5, 5, 6, 9]
print(numbers)  # Çıktı: [5, 2, 9, 1, 5, 6]

Bu örnekte, numbers listesini sıralamak için sorted() fonksiyonunu kullandık. Bu fonksiyon, sıralı listeyi sorted_numbers değişkenine atadı ve orijinal listeyi değiştirmedi.

Anahtara Göre Sıralama

Aynı zamanda, daha karmaşık yapıdaki listeleri de sıralamak isteyebiliriz. Örneğin, birden fazla anahtar kullanmak gibi. Bu tür durumlarda, sıralamak istediğimiz öğeleri bir dictionary (sözlük) olarak tanımlayabiliriz. Bu durumda, key parametresini kullanarak hangi anahtara göre sıralamak istediğimizi belirtebiliriz.

Örneğin, çalışan bilgilerini içeren bir liste oluşturalım:

employees = [
    {'name': 'John', 'age': 25},
    {'name': 'Anna', 'age': 22},
    {'name': 'Mike', 'age': 32}
]

Bu çalışan listesinin yaşlarına göre sıralanması gerektiğini düşünelim. Bu durumda, sorted() fonksiyonuna key parametresi olarak bir lambda fonksiyonu geçirebiliriz:

sorted_employees = sorted(employees, key=lambda x: x['age'])
print(sorted_employees)

Sonuç olarakysa, çalışanlar yaşlarına göre sıralanacaktır:

[{'name': 'Anna', 'age': 22}, {'name': 'John', 'age': 25}, {'name': 'Mike', 'age': 32}]

Birden Fazla Anahtara Göre Sıralama

Bazen, birden fazla anahtara göre sıralama ihtiyacı doğabilir. Örneğin, bir çalışan listesini önce yaşına, ardından ismine göre sıralamak isteyebilirsiniz. Bu tür bir sıralama için, key parametresine çoklu değerler döndüren bir lambda fonksiyonu sağlayabilirsiniz:

sorted_employees = sorted(employees, key=lambda x: (x['age'], x['name']))
print(sorted_employees)

Bu durumda, Python önce yaşa göre sıralama yapacak, ardından aynı yaşa sahip olanları isimlerine göre sıralayacaktır.

Sonuç

Python’da listeleri anahtara göre sıralamak oldukça kolaydır. sort() metodu ve sorted() fonksiyonu ile birlikte, karmaşık veri yapılarında anahtara göre sıralama işlemleri gerçekleştirebilirsiniz. Ayrıca, birden fazla anahtar kullanarak daha detaylı sıralama işlemleri yapabilirsiniz. Bu bilgilerle, veri setlerinizi daha anlamlı hale getirebilir ve analiz süreçlerinizi geliştirebilirsiniz.

Umarım bu yazı, Python’da liste sıralama hakkında merak ettiğiniz her şeyi anlamanızı sağlamıştır. Şimdi kendi projelerinizi geliştirirken bu öğrenimlerinizi uygulamaya koyma zamanı!

Scroll to Top