Sorter v/s sortert

Sorter v/s sortert

Sortering er en teknikk for å omorganisere elementene eller dataene enten i stigende rekkefølge eller synkende rekkefølge. I Python -programmering kan vi sortere veldig enkelt ved hjelp av metodene () og sortert ().

Sorterte () og sorteringsmetoder ordner elementene enten i stigende eller synkende rekkefølge. Selv begge utfører de samme operasjonene, men likevel er de forskjellige.

For disse opplæringsprogrammene må brukerne ha noen grunnleggende ideer om listen, tuplene og settene. Vi vil bruke noen grunnleggende operasjoner av disse datastrukturene for å vise et klart bilde av sortering () og sorterte () innebygde metoder. Og for dette bruker jeg Python3, så hvis du bruker Python2, kan det være en viss utgangsforskjell.

Sortert ():

Syntaks for den sorterte () -funksjonen er:

Sortert (Iterable, Key, Reverse = False)

Vi skal implementere sortering på både streng- og heltalldataene ved hjelp av den sorterte () innebygde metoden.

Den sorterte () -funksjonen vil godta en iterable og returnere de sorterte iterable elementene, som vil være i stigende rekkefølge som standard som standard. Som standard arrangerer den sorterte () -funksjonen elementer i stigende rekkefølge fordi det motsatte = falskt.

Sorteringstall

I cellenummer [4]: Vi opprettet en numerisk liste over navnnumre.

I cellenummer [5]: Vi kalte den sorterte () -funksjonen og besto den numeriske listen (tall) inn i den. Vi fikk den sorterte listen til gjengjeld, som også er en ny liste. Den nye listen betyr at den originale listen vi sendte inn i den sorterte () som en parameter er uendret. Fra cellenummeret [6] bekrefter vi at den opprinnelige listen er uendret selv etter at den sorterte () gjelder.

Den sorterte () -funksjonen har følgende egenskaper:

  • Den sorterte () -funksjonen trenger ikke å defineres før bruk. Vi kan kalle det direkte som vi gjorde i eksemplet ovenfor (cellenummer [5]).
  • Den sorterte () -funksjonen vil gjøre som standard stigende ordre -dataarrangementer hvis vi ikke gir noen parametere inn i det.
  • Den sorterte () -funksjonen returnerer en ny liste, som betyr den opprinnelige listen uendret, som vist i ovennevnte eksempel cellenummer [6].

Vi kan også tilordne de sorterte () resultatene tilbake til en ny variabel som vist nedenfor:


I cellenummer [13]: Vi opprettet en numerisk liste over navnnumre. Vi kalte den sorterte () -funksjonen og besto den numeriske listen (tall) inn i den.

Så tildelte vi resultatet av sorterte () -funksjonen til en ny variabel sort_results for videre bruk.

Bruk sortert () på tuples og sett:

Den sorterte () -funksjonen fungerer også på tuples og sett for å sortere elementene.


I cellenummer [15]: Vi opprettet en tuple (num_tuple) og sett (num_sets).

I cellenummer [18]: Vi kalte den sorterte funksjonen og tildelte returresultatene til nye variabler (tuple_sorted and set_sorted). Vi skrev deretter ut resultatene og fikk de sorterte dataene. Men resultatene er i listeformatet, ikke i tuplene og angir -formatet da vi passerte parametrene fordi den sorterte som standard returnerer resultatene i listeformat. Så hvis vi ønsker å få resultatene i samme format (sett og tuples), må vi bruke en rollebesetning.

I cellenummer [22]: Vi kan se fra utdataene, resulterer nå i formatet til tupelen og sett som vi forventet, for mens vi ringer til den sorterte () -funksjonen, brukte vi også rollebesetningsoperatøren, som konverterer listen tilbake til det nødvendige formatet.

Sorteringstreng

Nå skal vi bruke den sorterte () -funksjonen på listen over strenger, som vist nedenfor. Du vil se at før du fører strengen til den sorterte () -funksjonen, bruker vi Split () -metoden som standardformatparameter er plass (delt etter plass). Årsaken bak det er å få hele strengen som en liste, men delte hele strengen når plassen kommer. Hvis vi ikke gjør som nedenfor, vil hele strengen bli delt karaktermessig og vil ikke få riktig utgang som vi ønsker.

Så hvis vi ikke bruker split () -metoden under strengen sortert (), vil vi få resultatene som nedenfor:

Du kan se at hele strengen når vi gikk til den sorterte () -funksjonen, returnerer listen over tegn. Nå er resultatene ikke i henhold til våre krav.

Så for å overvinne dette problemet, må vi dele () strengen som vist nedenfor. Vi deler strengen her med plass fordi vi har en hovedperson som skiller strengene. Men det er ikke en begrensning; Du kan bruke hvilken som helst formatering innenfor split () -metoden i henhold til strengposisjonene dine.

I cellenummer [27]: Vi initialiserer en streng og delte deretter den strengen fra rommet som en delt formater. Og vi får listen over hver streng i hele strengen i stedet for tegnene på strengen.

I cellenummer [28]: Vi kaller den sorterte () -funksjonen og passerer den str_value_list som en parameter i den.

I cellenummer [29]: Vi skriver endelig ut den sorterte strenglisteavkastningen etter den sorterte () -funksjonen. I cellen [30] skriver vi igjen den originale listen for å bekrefte at den originale listen ikke endres av den sorterte () -funksjonen.

Sortering med omvendt = ekte argument

Nå vil vi endre standardparameteren til den sorterte () -funksjonen fra falsk til sann. Når vi endrer verdien av det motsatte fra falsk til sant, vil den sorterte () -funksjonen sortere dataene i synkende rekkefølge.

I celle [3]: Vi opprettet en heltallliste med navnnumre.

I celle [4]: Vi gir listen (tall) til den sorterte () funksjonen. Sammen med det endret vi det motsatte = sant. På grunn av det motsatte = sant, fikk vi dataene i synkende rekkefølge.

I celle [5]: Vi skriver ut den originale listen for å bekrefte at den ikke har endret den originale listen.

Sortering av streng saken betyr noe

Python bruker Unicode -koden for å bestemme den første tegnet på strengen før du sorterer enten synkende eller stigende rekkefølge. Slik at den sorterte () -funksjonen vil behandle små saken og kapitalkape -tegn som er forskjellige, selv om det samme, som en eller en verdi, vil være annerledes som vist nedenfor:


Så for å forstå dette, skriver vi igjen et lite sorteringsprogram.


I cellen [6]: Vi opprettet en strengnavneliste med all første karakterkapital.

I celle [7]: Når vi sorterte navnene, fikk vi ønsket resultat.

I celle [8]: Når vi endrer Harman første karakter for Harman og Apple til Apple og igjen sorterer listen, fikk vi et uventet resultat fordi resultatet viser at Apple -strengen på 3. plassering i listen som faktisk burde være på posisjon 1st i Listeindeks. Dette gjøres på grunn av Unicode -koden som Python brukte for å sjekke verdien deres.

I cellen [11]: Vi skriver ut det første tegnnavnet med verdien.

sortert () ved hjelp av nøkkelparameteren

Den sorterte () -funksjonen har en kraftigere funksjon som er nøkkelargumentet. Denne nøkkelen forventer en funksjon, og hvert element i listen må overføres til denne nøkkelen før den genererer den endelige utgangen.

Vi kan forstå dette fra dette grunnleggende eksemplet på strengsortering. I det forrige fant vi at Python brukte Unicode -metoden for å bestemme den første karakterverdien, og deretter, ifølge det, sorterer den elementene. Vi kan overvinne dette ved å bruke nøkkelfunksjonene, og resultatet vårt vil være i henhold til forventningene våre.


Nå kan vi se at fra resultatet, selv om den første karakteren er liten eller kapital, får vi resultater i henhold til vår forventning fordi nøkkelen som vi gir konverterer hvert element til en liten sak før vi går til sortering. Fortsatt vil den opprinnelige verdien bli skrevet ut som vi har sett.

Sorter () funksjon

Syntaksen til sort () -funksjonen er

liste.Sorter (tast, omvendt = falsk)

Hovedforskjellen mellom sorteringen () og sortert () -funksjonen er:


I celle [18], Vi kan se at Sort () -metoden er en del av listen og ikke en innebygd metode. Sorter () -metoden fungerer heller ikke med tuples og sett. Sorter () -metoden fungerer bare med listen, da den er en del av listeklassen.

Vi opprettet en ny liste og kalte sort () -metoden som vi kaller sorterte (), men vi fikk en feil fordi, som vi sa før, det ikke er en innebygd metode.

Vi kan kalle dette bare ved hjelp av listen med prikkoperatøren som vist ovenfor i syntaks.

Så vi kaller igjen sorteringen () -metoden med listen (tall), og dataene våre ble ordnet i stigende rekkefølge som som standard revers = FALSE. Men når vi skriver ut den originale listen i cellenummer [28], fant vi ut at den originale listen også endret fordi sort () -metoden ikke returnerer en iterable.

Konklusjon:

Så vi har studert sort () og sorterte () metoder. Vi har også sett at Sort () -metoden ikke er en innebygd metode fordi det er en listeklasse og bare har tilgang til listeobjektet. Men den sorterte () -metoden er innebygd og kan også fungere med tupelen og settene.