Python Örneklerle sort()'u listeleyin

⚡ Akıllı Özet

Python `list sort()` fonksiyonu, bir listenin elemanlarını varsayılan olarak artan sırada veya `reverse` parametresiyle azalan sırada sıralar; isteğe bağlı bir `key` fonksiyonu ise uzunluk, demet alanları veya kullanıcı tanımlı fonksiyonlar gibi özel kriterlere göre sıralama yapar.

  • 🔘 Sözdizimi: `sort()` metodu isteğe bağlı `key` ve `reverse` parametrelerini kabul eder ve orijinal listeyi kopya oluşturmadan değiştirir.
  • ☑️ Sipariş kontrolü: `reverse` parametresini `True` olarak ayarlamak, değerleri varsayılan artan sıralama yerine en yüksekten en düşüğe doğru sıralar.
  • Anahtar parametre: `len` gibi temel bir fonksiyon, öğeleri dize uzunluğu veya demet alanı gibi türetilmiş bir değere göre sıralar.
  • 🧪 sıralamak (sort) ve sıralanmış (sorted) arasındaki fark: `sort()` metodu listeyi olduğu gibi değiştirir ve `None` döndürürken, `sorted()` metodu yeni bir liste döndürür ve orijinal listeyi korur.
  • Özel kriterler: Lambda ifadeleri ve kullanıcı tanımlı fonksiyonlar, sort() fonksiyonunun demetleri, sözlükleri ve adlandırılmış demetleri seçilen herhangi bir özelliğe göre sıralamasına olanak tanır.
  • 🤖 Yapay zeka iş akışları: Makine öğrenimi işlem hatları, tahminleri puana göre sıralar ve sıralama veya değerlendirmeden önce en iyi sonuçları seçer.

Python Liste sıralama()

sort() yöntemi nedir? Python?

sort() fonksiyonu Python Bir listeyi artan veya azalan sırada sıralamaya yardımcı olur. Sayısal listeleri, demetleri ve metin listelerini sıralamak için kullanılabilir. Ayrı bir liste oluşturmaz, orijinal listeyi değiştirir veya sıralar.

Sıralama yönteminin söz dizimi Python

Sıralama fonksiyonunun sözdizimi şu şekildedir:

List.sort(key=…, reverse=…)

Sıralama fonksiyonunun iki isteğe bağlı parametresi vardır:

  • Anahtar: - Bu, bir sıralama kriterine göre bir işlevi sıralamak için kullanılır.
  • Reverse: – Bu parametre true veya false değerini alır. Eğer true ise, bu özel fonksiyon listeyi azalan sırada sıralar.

Sıralama yöntemini kullanarak bir listeyi artan düzende sıralamak Python

In Pythonsıralama işlevi varsayılan olarak herhangi bir listeyi artan düzende sıralar. Artan sırada bir listenin sol tarafında en düşük değer, sağ tarafında ise en yüksek değer bulunur.

Örnek:

Python Kod:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Çıktı:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Code Açıklama:

  • Yukarıdaki liste rastgele tanımlanmış bir dize listesidir.
  • Sıralama işlevi Python Kelimenin en kısa uzunluğu sol tarafta ve kelimenin en uzun uzunluğu sağ tarafta olacak şekilde rastgele listenin artan sırada sıralanmasına yardımcı olur.

Listeyi azalan düzende sıralama

Sıralama işlevi ayrıca bir listenin azalan düzende sıralanmasına da olanak tanır. Sipariş olarak tanımlanabilir listenin en yüksek değerle başlayıp en düşük değerle bittiği yer.

Sıralama fonksiyonunun ters parametresi, azalan düzende sıralanmış bir liste elde etmek için true olarak atanır.

Aşağıdaki örneğe bakalım:

Python Kod:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

Çıktı:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Not: Çalışma zamanı hatalarından kaçınmak için ters parametreye "True" kelimesinin atanmasının büyük "T" harfiyle başladığından emin olun.

Sıralama yöntemini kullanarak bir demet listesini sıralama Python

Python tuples sıralı bir sırayı takip eden değişmez öğelerin koleksiyonlarıdır. Python'ın sort işlevi, özelleştirilmiş bir işlev ve lambda ifadesi kullanarak bir demetler listesini sıralamak için kullanılabilir.

İsimsiz olarak da özelleştirilmiş bir fonksiyon oluşturulabilir ve bu fonksiyon lambda ifadesiyle temsil edilebilir. Lambda ifadesinin sözdizimi aşağıdaki gibidir:

Sözdizimi:

Lambda arguments: expression

Yukarıdaki sözdizimi aşağıdaki python koduna eşdeğerdir:

def name (arguments):
return expression

İşte, anahtar parametrelere sahip bir sıralama fonksiyonunun bir demetteki öğeleri nasıl sıraladığını göstermek için bir demet ve özelleştirilmiş fonksiyon örneği:

Python Kod:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

Çıktı:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Code Açıklama:

  • Tuple'ı azalan düzende sıralamak için ters parametre true olarak tanımlanır.
  • Özelleştirilmiş işlev, tuple'ın ikinci öğesini alır.
  • Bu, sıralama fonksiyonunun anahtarı olarak kullanılır.

Lambda ifadesinin kullanıldığı aşağıdaki örneğe bakalım:

Python Kod:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

Çıktı:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Açıklama:

  • Lambda ifadesi, tuple'ın ikinci elemanı olan anahtar ile demet elemanlarını yüksekten düşüğe doğru sıralamanıza yardımcı olur.
  • Program, tuple'ın ikinci elemanının en yüksek değerini kontrol edecektir.

Len'i anahtar parametre olarak kullanarak liste öğelerini sıralama

Len, öğenin uzunluğunu belirleyen yerleşik bir fonksiyondur. Belirlenen uzunluk, sıralama fonksiyonunda indeksleme için kullanılabilir. Bunu yapmak için, Len'i şuna atarız: Python sıralama fonksiyonunun anahtar parametresi.

Aşağıdaki Python kod, Len işlevinin sıralama işleviyle nasıl kullanılacağını gösterir.

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Çıktı:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Code Açıklama:

Liste öğelerini Len kullanarak sıralama

  • Öğenin uzunluğu, listeyi artan sırada düzenlemek için anahtar parametre için bir dizin haline gelir.
  • Len işlevi, temel listede bulunan her öğenin uzunluğunu tahmin eder.
  • En kısa elemanı sol tarafta, en büyük elemanı ise sağ tarafta tutar.
  • Burada, alto ve java kelimelerinin uzunlukları 4'tür ve listede ilk sırada yer alırlar, ardından diğerleri gelir. Guru99, uzunluğu 6 olan bir sayıdır.

Bu örnek, sıralama fonksiyonundaki ters parametre kavramını aşağıdaki gibi göstermektedir:

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

Çıktı:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Kullanıcı tanımlı işlevi anahtar parametre olarak kullanarak liste öğelerini sıralama

Listeyi sıralamak için kullanıcı tanımlı bir fonksiyonu anahtar parametre olarak da kullanabilirsiniz. İşte bir örnek:

Python Code:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

Çıktı:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Code Açıklama:

  • Yılı döndürmek için kullanıcı tanımlı bir işlev oluşturulur
  • Anahtar parametresi kullanıcı tanımlı bir fonksiyonu kriter olarak alır.
  • Sıralama işlevi, listeyi "yıl" öğesinin değerine göre artan sırada düzenleyecektir.

Sıralama yöntemi ile sıralanmış yöntem arasındaki fark Python

Yukarıdaki örnekleri inceledikten sonra, iki sıralama aracını doğrudan karşılaştırmak faydalı olacaktır. Farklılıkları özetlemeden önce, Sorted yönteminin sözdizimini anlayalım.

Python Sözdizimi:

sorted (list_name, reverse=…., key=..)

Code Açıklama:

  • sorted işlevi, listeyi artan veya azalan düzende sıralar.
  • İşlev, iki parametrenin isteğe bağlı türde ve bir parametrenin gerekli türde olduğu üç parametreyi kabul eder.
  • Sorted yöntemi kullanılırken liste_adı parametresi gereklidir.
  • Sorted yöntemi herhangi bir yinelenebilir liste türünü girdi olarak alabilir.
  • Sıralama yönteminde anahtar parametreler ve ters parametreler isteğe bağlı parametrelerdir. Python.

Burada sort ve sorted işlevinin kullanımına bir örnek verilmiştir. Python:

Python Kod:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

Çıktı:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Code Açıklama:

  • Orijinal liste, sorted işlevi için gerekli bir parametre olarak iletilir.
  • Sorted yöntemi orijinal listenin yanı sıra yeni bir liste döndürür.
  • sorted yöntemine hiçbir ek parametre aktarılmadığından, yeni liste varsayılan olarak artan düzende sıralanır.
  • Sıralama işlevi yeni bir liste oluşturmaz.

Aşağıda temel benzerlikler ve farklılıklar yer almaktadır:

Sıralanmış işlev Sıralama işlevi
Sıralanmış işlev Python liste_adı'nı gerekli parametre olarak alan yerleşik bir işlevdir. Sıralama fonksiyonu orijinal listeyi parametre olarak almaz.
Sıralanmış yöntem yeni bir liste döndürür Sıralama işlevi yeni bir liste döndürmez
Yinelenebilir listeler için sıralanmış işlev kullanılmalıdır Yinelenemeyen listeler için sort işlevi kullanılmalıdır.
Orijinal listeyi değiştirmez ve orijinal verileri korumamıza olanak tanır. Sıralama işlevi orijinal işlevi değiştirir ve dolayısıyla daha az bellek alanı kaplar

Sıralanmış yöntem veya sıralama yöntemi ne zaman kullanılmalı?

Yarış verilerinin sıralanmasını gerektiren bir örneği ele alalım. Program göğüs numarasını ve yarışı bitirmek için saniye cinsinden geçen süreyi kullanır.

Python Kod:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

Çıktı:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Code Açıklama:

  • Temel liste, hem sıralama işlevi hem de sıralama işlevi kullanılarak sıralanır.
  • Sıralama işlevi uygulandığında temel liste kaybolur.
  • Sıralama işlevi orijinal veri kümesine uygulanmamalıdır. Orijinal veri setinin kopya versiyonu mevcut olduğunda kullanılmalıdır.
  • Sıralanmış işlevi orijinal listeyi korur. Bunu geçersiz kılmaz.
  • Bu daha iyi bir teklif sunuyor. tracVerimlilik ve etkili veri yönetimi.

SSS

`sort()` metoduna `key=str.lower` değerini geçirin, örneğin `names.sort(key=str.lower)`. Her dize küçük harfle karşılaştırılır, bu nedenle 'Apple' ve 'banana' büyük/küçük harf ayrımı gözetilmeksizin alfabetik olarak sıralanır. Son sıralanmış listede her öğenin orijinal büyük/küçük harf kullanımı korunur.

Sayıların veya metinlerin tümünü içeren bir listeyi sıralamak işe yarar, ancak tamsayılar ve metinler gibi birbiriyle ilgisiz türleri karıştırmak TypeError hatasına neden olur, çünkü Python Bunları karşılaştıramazsınız. Öncelikle değerleri karşılaştırılabilir bir türe dönüştürün veya karşılaştırılabilir anahtarlar döndüren bir anahtar fonksiyonu geçirin.

Python Tarihsel olarak, birleştirme sıralaması ve ekleme sıralamasının bir hibriti olan Timsort kullanılmıştır. 3.11 sürümünden itibaren yorumlayıcı, daha akıllı bir birleştirme politikasına sahip Timsort türevi bir varyant olan Powersort'u kullanmaktadır. Her ikisi de kararlıdır ve en kötü durumda O(n log n) sürede çalışır.

Evet. `sort()` metodu kararlıdır, bu nedenle eşit olarak karşılaştırılan öğeler orijinal göreceli sıralarını korur. Bu, en az önemli anahtardan başlayıp en önemli anahtara kadar sıralayarak, çeşitli kriterlere göre aşamalı olarak sıralama yapmanıza olanak tanır.

`sort()` metodu en kötü ve ortalama durumlarda O(n log n) zaman karmaşıklığına sahiptir. Zaten büyük ölçüde sıralı olan verilerde ise O(n) zaman karmaşıklığına yaklaşır, çünkü altta yatan algoritma, mevcut sıralı dizileri yeniden sıralamak yerine tespit edip yeniden kullanır.

Karşılaştırma sırasında her öğeyi dönüştüren bir anahtar geçirin, örneğin `nums.sort(key=int)`. Bu durumda liste, karakter yerine sayısal değere göre sıralanır, böylece '10' doğru şekilde '9'dan sonra sıralanır. Saklanan öğeler dize olarak kalır; yalnızca karşılaştırma onların tamsayı değerini kullanır.

Sıralama, tahminleri puana veya olasılığa göre düzenler, sıralama ve öneri sistemlerinde en iyi k sonucu seçer ve veri hazırlama sırasında kayıtları sıralar. Makine öğrenimi işlem hatları, değerlendirmeden önce sıklıkla özellik değerlerini veya model çıktılarını sıralar, bu nedenle yerleşik sort() yöntemi yaygın bir ön işleme adımıdır.

Evet. GitHub Copilot ve yapay zeka destekli asistanlar, kısa bir yorumdan temel fonksiyonlar ve lambda ifadeleri de dahil olmak üzere sort() ve sorted() çağrıları oluşturur. Döngüleri tek bir sort ifadesine dönüştürebilirler, ancak yine de sıralamayı test etmeli ve uç durumlarda sonucu doğrulamalısınız.

Bu yazıyı şu şekilde özetleyin: