Birden Çok Alana Göre Sıralama
Demet anahtarları ve reverse ile eşitlikleri çözün.
Birden Çok Alana Göre Sıralama, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.
Tek Bir key Yeterli Olmadığında
Bazen öğeler ilk alanda eşleşir ve eşitliği çözmeniz gerekir. Çözüm, alanları öncelik sırasıyla listeleyen bir demet key kullanmaktır.
Demetler Soldan Sağa Karşılaştırılır
Python, demetleri öğe öğe karşılaştırır: ilk öğeyi kontrol eder ve yalnızca ilk öğeler eşit olduğunda ikinci öğeye bakar.
print((1, 9) < (1, 2)) # False
print((1, 2) < (2, 0)) # Trueİki Alan İçin Demet key
İlk alana, ardından ikinci alana göre sıralamak için key'den bir demet döndürün. Bu işlem kişileri önce yaşa, ardından ada göre sıralar.
people.sort(key=lambda p: (p.age, p.name))Birincil ve İkincil Sıra
En soldaki alan birincil sıralama ölçütüdür; sonraki alan ise eşitlik çözücüdür. Hangi alanın öncelikli olacağını değiştirmek için demetin sırasını değiştirin.
data = [(2, "b"), (1, "z"), (1, "a")]
print(sorted(data))
# [(1, 'a'), (1, 'z'), (2, 'b')]Artan ve Azalan Sıralamayı Birleştirin
Bir alanı artan, diğerini azalan sıralamak için demet key içinde azalan olmasını istediğiniz sayısal alanın işaretini değiştirin.
items.sort(key=lambda x: (x.group, -x.score))İşaret Değiştirme Hilesi Sayılar İçindir
Eksi işareti hilesi yalnızca sayılarda çalışır. Bir dize alanını tersine çevirmek için işaretini değiştirmek yerine sıralamaları katmanlamalısınız.
Kararlı Sıralama Katmanlamayı Sağlar
Sıralama kararlı olduğu için önce ikincil key'e, ardından birincil key'e göre sıralayabilirsiniz; eşit değerler doğru sırada kalır.
rows.sort(key=lambda r: r.name)
rows.sort(key=lambda r: r.age, reverse=True)Katmanlama mı, Tek Demet mi
Basit durumlarda tek bir demet key daha hızlı ve daha anlaşılırdır. Bir alan dize olarak artarken başka bir alanın azalması gerektiğinde katmanlı sıralamalar daha kullanışlıdır.
Hız İçin itemgetter
Dizin tabanlı demetlerde itemgetter düzenli ve hızlı bir key işlevdir. Öncelik sırasına göre birden fazla alanı aynı anda seçer.
from operator import itemgetter
rows.sort(key=itemgetter(1, 0))Eşitlik Çözücü Çıktıyı Belirleyici Kılar
id gibi son ve benzersiz bir eşitlik çözücü eklemek, çalıştırmalar arasında çıktının kararlı olmasını sağlar; bu da katı denetleyiciler kullanan değerlendiricilerin hoşuna gider.
Kodlamadan Önce key'inizi Planlayın
Problemi okuyun ve sıralama alanlarını sırayla yazın. Açık bir demet key, karmaşık bir karşılaştırmayı tek ve kısa bir satıra dönüştürür.
Hızlı Kontrol
Öğrencileri önce nota göre artan, ardından ada göre artan sıralamak istiyorsunuz.
Özet
Eşitlikleri bir demet key ile çözebilir, azalan sıralama için sayıların işaretini değiştirebilir ve farklı yönler için kararlı sıralamaları katmanlayabilirsiniz. Eşitlik çözücüler çıktıyı düzenli tutar. ✅
Sıkça Sorulan Sorular
“Birden Çok Alana Göre Sıralama” dersi ücretsiz mi?
Evet — “Birden Çok Alana Göre Sıralama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.
“Birden Çok Alana Göre Sıralama” dersinde ne öğreneceğim?
Demet anahtarları ve reverse ile eşitlikleri çözün. Coding Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Coding Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Birden Çok Alana Göre Sıralama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Coding Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- sorted() ve key İşlevi
- Birden Çok Alana Göre Sıralama
- functools.cmp_to_key ile Özel Sıralama
- Önce Sıralamanın Çözümlerin Önünü Açması