Python'da Liste Nasıl Sıralanır (Artan ve Azalan)

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.

Bu Çözümü Editör'de deneyin

Genel Bakış

Verileri sıralamak, ister kullanıcı profillerini yaşa göre sıralıyor, ister ürünleri fiyata göre listeliyor, ister arama sonuçlarını düzenliyor olun, programlamadaki en yaygın görevlerden biridir. Python, listeleri sıralamak için iki yerleşik, yüksek düzeyde optimize edilmiş yöntem sunar: 'list.sort()' yöntemi ve 'sorted()' işlevi. Her ikisi de, O(N log N) zaman karmaşıklığında çalışan, Timsort adı verilen oldukça verimli bir sıralama algoritması kullanıyor.

İkisi arasındaki temel fark değişebilirliktir. 'list.sort()' yöntemi, listeyi yerinde sıralar, yani doğrudan orijinal listeyi değiştirir ve 'Yok'u döndürür. Öte yandan, 'sorted()' işlevi orijinal listeyi değiştirmeden bırakır ve yepyeni bir sıralanmış liste döndürür. Bu ayrım çok önemlidir: bellekten tasarruf etmek istediğinizde ve orijinal sıraya ihtiyacınız olmadığında `sort()'u kullanın ve orijinal listeyi olduğu gibi tutmanız gerektiğinde veya tuples veya sözlükler gibi liste dışı yinelenebilirleri sıralarken `sorted()`u kullanın.

Her iki sıralama yöntemi de iki isteğe bağlı anahtar kelime bağımsız değişkenini kabul eder: 'tersine' ve 'anahtar'. 'Ters' argümanı bir boole değeridir; 'Doğru' olarak ayarlanması listeyi azalan (tersine) sırada sıralar. 'Anahtar' argümanı, karşılaştırmadan önce her öğeye uygulanan bir işlevi kabul eder. Bu, bir dizi listesini uzunluklarına göre sıralamak veya bir sözlük listesini belirli bir anahtara göre sıralamak gibi karmaşık sıralama mantığına olanak tanır.

Kod ve Yürütme Çıkışı

Bu kod, hem sort() hem de sort() kullanarak bir sayı listesinin sıralanmasını, ters sıralamayı ve dize uzunluğuna göre özel anahtar sıralamasını gösterir.

sort_list.py
Editör'de deneyin
numbers = [42, 7, 12, 89, 23]

# 1. Using sorted() (returns new list)
new_sorted = sorted(numbers)
print("Original:", numbers)
print("Sorted new list:", new_sorted)

# 2. Using sort() (in-place modification)
numbers.sort()
print("Modified original list:", numbers)

# 3. Sorting in reverse (descending)
numbers.sort(reverse=True)
print("Reverse sorted list:", numbers)

# 4. Custom sorting (by string length)
words = ["banana", "pear", "apple", "fig"]
words.sort(key=len)
print("Sorted by length:", words)
Terminal Çıkışı
Original: [42, 7, 12, 89, 23]
Sorted new list: [7, 12, 23, 42, 89]
Modified original list: [7, 12, 23, 42, 89]
Reverse sorted list: [89, 42, 23, 12, 7]
Sorted by length: ['fig', 'pear', 'apple', 'banana']

Adım Adım Uygulama

  • Orijinal verileri değiştirmeden listenin bir kopyasını sıralamak için sorted() işlevini kullanın.
  • Yerinde değişiklik yapmak ve bellekten tasarruf etmek için liste nesnesinde doğrudan .sort() yöntemini kullanın.
  • Öğeleri azalan düzende sıralamak için parametre olarak ters=True değerini iletin.
  • Öğeleri özel bir özelliğe (uzunluk veya iç içe geçmiş değerler gibi) göre sıralamak için key=lambda x: ... öğesini kullanın.

Sıkça Sorulan Sorular

list.sort() ve sorted() arasındaki fark nedir?

list.sort(), listeyi yerinde değiştirir ve Yok değerini döndürür; sorted() ise orijinal listeyi değiştirmeden bırakır ve yeni bir sıralanmış liste döndürür.

Bir sözlük listesini bir anahtara göre nasıl sıralarsınız?

Anahtar parametresini bir lambda işleviyle veya operatör.itemgetter ile kullanın. Örneğin: list.sort(anahtar=lambda öğe: öğe["yaş"]).

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.