Python'da Bir Sözlüğü Değere Göre Sıralama
Python sözlüğünü değerlerine göre nasıl sıralayacağınızı öğrenin. sorted() yöntemini, özel anahtar lambdaları ve sıralı dikte yapıları oluşturmayı kullanarak sıralamayı keşfedin.
Genel Bakış
Sözlükler öncelikle benzersiz anahtarlar kullanan hızlı arama işlemleri için oluşturulmuş olsa da, çoğu zaman sözlük öğelerini değerlerine göre sıralamanız gerekecektir. Örneğin, öğrencileri sınav notlarına göre sıralamak, ürünleri en ucuzdan en pahalıya doğru listelemek veya kelime sayılarını sıklığa göre sıralamak gibi.
Python'da, standart sözlük yapıları listeler gibi sıralama yöntemlerini desteklemediğinden, bir sözlüğü yerinde doğrudan sıralayamazsınız. Bunun yerine, standart yaklaşım, sözlüğün öğelerini ".items()" yöntemini kullanarak demetler halinde almak, özel bir sıralama anahtarıyla yerleşik "sorted()" işlevini kullanarak bu demetleri sıralamak ve ardından sözlüğü sıralanan öğelerden yeniden oluşturmaktır.
Sıralama anahtarı genellikle tanımlama grubunun ikinci öğesini (sözlük değeri) döndüren bir lambda işlevidir: `key=lambda item: item[1]'.Python 3.7+'dan beri standart sözlükler ekleme sırasını korur. 'dict()' yapıcısını kullanarak sıralanmış demet listesini tekrar sözlüğe yeniden dönüştürmek, yinelemeye hazır, temiz, sıralanmış bir sözlük döndürür.
Kod ve Yürütme Çıkışı
Bu komut dosyası, lambda işlevlerini kullanarak test puanları sözlüğünü değerlere göre hem artan hem de azalan sırada sıralamayı gösterir.
scores = {"Alice": 88, "Bob": 75, "Charlie": 95, "David": 82}
print("Original dictionary:", scores)
# 1. Sort by values (ascending order)
sorted_ascending = dict(sorted(scores.items(), key=lambda item: item[1]))
print("Sorted ascending:", sorted_ascending)
# 2. Sort by values (descending order)
sorted_descending = dict(sorted(scores.items(), key=lambda item: item[1], reverse=True))
print("Sorted descending:", sorted_descending)
# 3. sorting by keys for comparison
sorted_keys = dict(sorted(scores.items(), key=lambda item: item[0]))
print("Sorted by keys:", sorted_keys)Original dictionary: {'Alice': 88, 'Bob': 75, 'Charlie': 95, 'David': 82}
Sorted ascending: {'Bob': 75, 'David': 82, 'Alice': 88, 'Charlie': 95}
Sorted descending: {'Charlie': 95, 'Alice': 88, 'David': 82, 'Bob': 75}
Sorted by keys: {'Alice': 88, 'Bob': 75, 'Charlie': 95, 'David': 82}Adım Adım Uygulama
- Anahtar/değer çiftlerini bir tanımlama listesi olarak almak için my_dict.items() öğesini çağırın.
- Sözlük öğelerini sorted() işlevine aktarın.
- sorted() işlevine değere göre (her demetin ikinci öğesi) sıralama yapması talimatını vermek için key=lambda item: item[1] belirtin.
- Öğeleri azalan düzende sıralamak için isteğe bağlı bir bağımsız değişken olarak ters=True değerini iletin.
- Sıralanmış demetlerin listesini dict() yapıcısına ileterek sıralanmış sözlüğü yeniden oluşturun.
Sıkça Sorulan Sorular
key=lambda item: item[1] ne anlama geliyor?
sorted() işlevi, öğeler dizisinin her bir öğesini (bir (anahtar, değer) dizisi) lambda işlevine iletir. item[1], Python'a demetleri değere göre sıralamasını söyleyerek değer bileşenini çıkarır.
Bir sözlüğü sıralamak onun anahtar arama hızını etkiler mi?
Hayır, anahtar aramalar O(1) ortalama zaman karmaşıklığı olarak kalır çünkü sıralama, temel karma tablosu yapısını değil yalnızca yineleme sırasını değiştirir.
İlgili Konular
Python'da sort() yöntemini ve sorted() işlevini kullanarak bir listeyi nasıl sıralayacağınızı öğrenin. Özel anahtar sıralama ve ters sıralama örneklerini keşfedin.
Python'da Bir Sözlük Yoluyla Yineleme Nasıl YapılırPython sözlüğünde nasıl döngü yapılacağını veya yineleneceğini öğrenin. Temiz, çalıştırılabilir örneklerle anahtarlar, değerler ve anahtar/değer çiftleri üzerinde döngü oluşturma yöntemlerini keşfedin.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Döngüleri
Veriler üzerinde yineleme yapmak için Python döngülerini nasıl kullanacağınızı öğrenin. Etkileşimli örneklerle for döngüleri, while döngüleri, kesme, devam etme ve döngü en iyi uygulamaları konusunda uzmanlaşın.
Python Sözlüğü Yöntemleri Hile Sayfası
Python sözlük yöntemlerini öğrenin. Anahtar/değer çifti ekleme, alma, güncelleme ve kontroller için eksiksiz başvuru kılavuzu.
Python vs Ruby: Komut Dosyası Oluşturma, Web Çerçeveleri ve Felsefe
Python ve Ruby'yi karşılaştırın. Felsefeleri, sözdizimi zarafeti, web çerçeveleri (Djangovs Rails) ve yürütme stilleri arasındaki ince farkları öğrenin.