Python Seznam sort() s příklady

V čem je metoda sort() in Python?

Funkce řazení v Python pomáhá třídit seznam ve vzestupném nebo sestupném pořadí. Lze jej použít pro třídění číselného seznamu, n-tic a seznamu řetězců. Nevytváří samostatný seznam, ale upravuje nebo třídí originál.

Syntaxe metody řazení v Python

Funkce řazení má následující syntaxi, jak je uvedeno níže: –

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

Funkce řazení má dva volitelné parametry, jmenovitě uvedené níže: –

  • Klíč:- Používá se k třídění funkce na základě třídícího kritéria.
  • Reverse: – má hodnotu buď true nebo false. Pokud je true, tato vlastní funkce seřadí seznam v sestupném pořadí.

Seřazení seznamu ve vzestupném pořadí pomocí metody Sort in Python

In Python, funkce řazení ve výchozím nastavení třídí všechny seznamy vzestupně. Seznam ve vzestupném pořadí má nejnižší hodnotu na levé straně a nejvyšší hodnotu na pravé straně.

Příklad:

Python kód:

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

Výstup:

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

Vysvětlení kódu:

  • Výše uvedený seznam je náhodně definovaný seznam řetězců.
  • Funkce řazení Python pomáhá při řazení náhodného seznamu ve vzestupném pořadí, s nejnižší délkou slova na levé straně a nejvyšší délkou slova na pravé straně.

Seřazení seznamu v sestupném pořadí

Funkce řazení také umožňuje seřadit seznam v sestupném pořadí. Lze ji definovat jako objednávku kde seznam začíná nejvyšší hodnotou a končí nejnižší hodnotou.

Zpětný parametr funkce řazení je přiřazen jako true, aby se seznam seřadil v sestupném pořadí.

Podívejme se na níže uvedený příklad: –

Python kód:

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)

Výstup:

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

Poznámka: Ujistěte se, že přiřazení slova „True“ zpětnému parametru začíná velkým písmenem „T“, abyste se vyhnuli chybám za běhu.

Řazení seznamu n-tic pomocí metody Sort in Python

Python N -tice jsou kolekce neměnných prvků, které sledují uspořádanou sekvenci. PythonFunkci řazení lze použít k seřazení seznamu n-tic pomocí přizpůsobené funkce a výrazu lambda.

Přizpůsobenou funkci lze vytvořit bez názvu a reprezentovat ji výrazem lambda. Následuje syntaxe výrazu Lambda: –

Syntaxe:

Lambda arguments: expression

Výše uvedená syntaxe je ekvivalentní níže uvedenému kódu pythonu:

def name (arguments):
return expression

Zde je příklad n-tice a přizpůsobené funkce pro ilustraci, jak funkce řazení s klíčovými parametry pomáhá třídit prvky v n-tice:-

Python kód:

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)

Výstup:

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

Vysvětlení kódu:

  • Zpětný parametr je definován jako true pro seřazení n-tice v sestupném pořadí.
  • Přizpůsobená funkce přebírá druhý prvek n-tice.
  • Toto se používá jako klíč funkce řazení.

Podívejme se na níže uvedený příklad, který využívá výraz lambda:

Python kód:

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)

Výstup:

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

Vysvětlení:

  • Výraz lambda vám pomůže seřadit prvky n-tice od vysoké po nízkou s klíčem jako druhým prvkem n-tice.
  • Program zkontroluje nejvyšší hodnotu druhého prvku n-tice.

Třídění položek seznamu pomocí Len jako klíčového parametru

Len je vestavěná funkce, která určuje délku položky. Zjištěná délka může být použita pro indexování ve funkci třídění. K tomu přiřadíme Len k Python klíčový parametr funkce řazení.

Následující Python kód ilustruje, jak používat funkci Len s funkcí řazení.

Python Kód:

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

Výstup:

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

Vysvětlení kódu:

Třídění položek seznamu pomocí Len

  • Délka prvku se stane indexem klíčového parametru pro uspořádání seznamu ve vzestupném pořadí.
  • Funkce Len odhaduje délku každého prvku v základním seznamu.
  • Zachovává nejkratší prvek na levé straně a největší prvek na pravé straně.
  • Zde mají slova alt a java délku 4, která jsou v seznamu uspořádána jako první, následovaná Guru99, která má délku 6.

Tento příklad ilustruje koncept zpětného parametru ve funkci řazení, jak je uvedeno níže: –

Python Kód:

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

Výstup:

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

Třídění položek seznamu pomocí uživatelem definované funkce jako klíčového parametru

Můžete také použít uživatelem definovanou funkci jako klíčový parametr pro třídění seznamu. Zde je příklad: –

Python Kód:

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)

Výstup:

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}]

Vysvětlení kódu:

  • Je vytvořena uživatelsky definovaná funkce pro vrácení roku
  • Klíčový parametr bere jako kritérium uživatelem definovanou funkci.
  • Funkce řazení uspořádá seznam ve vzestupném pořadí na základě hodnoty prvku „rok“.

Rozdíl mezi metodou třídění a metodou třídění v Python

Než budou shrnuty rozdíly, pochopme syntaxi metody Sorted.

Python Syntaxe:

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

Vysvětlení kódu:

  • Funkce třídění seřadí seznam ve vzestupném nebo sestupném pořadí.
  • Funkce přijímá tři parametry, z nichž dva parametry jsou nepovinného typu a jeden parametr je požadovaného typu.
  • Parametr list_name je vyžadován při použití metody Sorted.
  • Metoda Sorted může mít jako vstup jakýkoli typ iterovatelného seznamu.
  • Klíčové parametry a zpětné parametry jsou volitelné parametry v rámci metody třídění v Python.

Zde je příklad použití funkce řazení a třídění v Python jak je uvedeno níže: –

Python kód:

#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)

Výstup:

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

Vysvětlení kódu:

  • Původní seznam je předán jako povinný parametr pro tříděnou funkci.
  • Metoda Sorted vrátí nový seznam kromě původního seznamu.
  • Protože tříděné metodě nejsou předávány žádné další parametry, je nový seznam standardně řazen vzestupně.
  • Funkce řazení nevytváří žádný nový seznam.

Níže jsou uvedeny body o klíčových podobnostech a rozdílech: –

Tříděná funkce Funkce řazení
Tříděná funkce v Python je vestavěná funkce, která bere list_name jako povinný parametr. Funkce řazení nebere jako parametr původní seznam.
Seřazená metoda vrátí nový seznam Funkce řazení nevrací nový seznam
Pro iterovatelné seznamy by měla být použita funkce třídění Funkce řazení by se měla používat pro neiterovatelné seznamy.
Nemění původní seznam a umožňuje nám zachovat původní data. Funkce třídění upravuje původní funkci, a proto zabírá méně místa v paměti

Kdy použít metodu třídění nebo metodu třídění?

Vezměme si příklad, který vyžaduje třídění dat závodu. Program používá číslo startovní listiny a čas v sekundách k dokončení závodu.

Python kód:

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)

Výstup:

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)]

Vysvětlení kódu:

  • Základní seznam se třídí pomocí funkce třídění i funkce třídění.
  • Základní seznam se při použití funkce řazení ztratí.
  • Funkce řazení by neměla být aplikována na původní datovou sadu. Mělo by se použít, pokud existuje kopie verze původního souboru dat.
  • Funkce Seřazeno zachová původní seznam. Nepřepisuje to.
  • To nabízí lepší sledovatelnost a efektivní správu dat.

Proč investovat do čističky vzduchu?

  • Funkce řazení pomáhá při řazení číselného a řetězcového seznamu v pythonu.
  • Může také pomoci při třídění n-tic.
  • Reverse a key jsou volitelné parametry funkce.
  • Pokud je potřeba mít samostatný seznam a současně mít původní seznam, pak je třeba použít funkci třídění, jinak je třeba použít funkci třídění pro dosažení optimalizovaného využití paměti.