Ordina V/S Ordinata

Ordina V/S Ordinata

L'ordinamento è una tecnica per riorganizzare gli elementi o i dati in ordine crescente o in ordine decrescente. Nella programmazione Python, possiamo eseguire l'ordinamento molto facilmente con l'aiuto dei metodi Ord () e ordinato ().

I metodi Ordinated () e Sort () Disporrebbero gli elementi in ordine crescente o discendente. Anche entrambi eseguono le stesse operazioni, ma sono comunque diversi.

Per questi tutorial, gli utenti devono avere alcune idee di base sull'elenco, le tuple e i set. Utilizzeremo alcune operazioni di base di queste strutture di dati per mostrare un quadro chiaro di Ord () e Ordined () Metodi integrati. E per questo, sto usando Python3, quindi se stai usando Python2, allora potrebbe esserci qualche differenza di output.

Smistato ():

La sintassi per la funzione ordinata () è:

ordinato (iterable, chiave, reverse = false)

Implementeremo l'ordinamento su entrambi i dati di stringa e interi utilizzando il metodo incorporato Ordined ().

La funzione ordinata () accetterà un iterable e restituirà gli elementi iterabili ordinati, che saranno in ordine crescente per impostazione predefinita. Per impostazione predefinita, la funzione ordinata () organizza elementi in ordine crescente perché il reverse = false.

Ordinamento dei numeri

Nel numero di cellule [4]: Abbiamo creato un elenco numerico di numeri di nome.

Nel numero di cellule [5]: Abbiamo chiamato la funzione Ordined () e abbiamo passato l'elenco numerico (numeri) in questo. Abbiamo ottenuto l'elenco ordinato in cambio, che è anche un nuovo elenco. Il nuovo elenco significa che l'elenco originale che abbiamo passato nel () come parametro è invariato. Dal numero di celle [6], confermiamo che l'elenco originale è invariato anche dopo che il () si applica il ().

La funzione ordinata () ha le seguenti proprietà:

  • La funzione ordinata () non è necessario definire prima dell'uso. Possiamo chiamarlo direttamente come abbiamo fatto nell'esempio sopra (numero di cella [5]).
  • La funzione Ordinate () farà per impostazione predefinita per i dati dell'ordine ascendente se non passiamo alcun parametro in quello.
  • La funzione Ordined () restituisce un nuovo elenco, il che significa invariato l'elenco originale, come mostrato nel numero di cella di esempio sopra [6].

Possiamo anche assegnare i risultati ordinati () a una nuova variabile come mostrato di seguito:


Nel numero di cellule [13]: Abbiamo creato un elenco numerico di numeri di nome. Abbiamo chiamato la funzione ordinata () e abbiamo passato l'elenco numerico (numeri) in questo.

Quindi abbiamo assegnato il risultato della funzione Ordined () a una nuova variabile Sort_Results per un ulteriore utilizzo.

Applica Ordined () su tuple e set:

La funzione Ordined () funziona anche su tuple e imposta per ordinare gli elementi.


Nel numero di cellule [15]: Abbiamo creato un tuple (num_tuple) e set (num_sets).

Nel numero di cellule [18]: Abbiamo chiamato la funzione ordinata e assegnato i risultati di ritorno a nuove variabili (tuple_sorted e set_sorted). Abbiamo quindi stampato i risultati e ottenuto i dati ordinati. Ma i risultati sono nel formato dell'elenco, non nel formato TUPLE e imposta quando abbiamo superato i parametri perché, per impostazione predefinita, il Sorted restituisce i risultati in formato dell'elenco. Quindi, se vogliamo ottenere i risultati nello stesso formato (set e tuple), dobbiamo usare un cast.

Nel numero di cellule [22]: Possiamo vedere dall'output, ora si traduce nel formato della tupla e impostato come ci si aspettava perché mentre chiamava la funzione ordinata (), abbiamo anche applicato l'operatore del cast, che converte l'elenco nel formato richiesto.

Stringa di ordinamento

Ora, applicheremo la funzione Ordined () nell'elenco delle stringhe, come mostrato di seguito. Vedrai che prima di passare la stringa alla funzione ordinata (), utilizziamo il metodo split () che il parametro del formato predefinito è spazio (diviso per spazio). Il motivo dietro è quello di ottenere l'intera stringa come elenco ma dividere l'intera stringa quando arriva lo spazio. Se non facciamo come di seguito, l'intera stringa sarà divisa dal punto di vista dei caratteri e non otterrà l'output corretto come desideriamo.

Quindi, se non utilizziamo il metodo split () durante la stringa ordinata (), otterremo i risultati come di seguito:

Puoi vedere che l'intera stringa quando siamo passati alla funzione ordinata (), restituisce l'elenco dei caratteri. Ora i risultati non sono secondo i nostri requisiti.

Quindi, per superare questo problema, dobbiamo dividere () la stringa come mostrato di seguito. Stiamo dividendo la stringa qui con spazio perché abbiamo un carattere maggiore di spazio che separa le corde. Ma non è una restrizione; È possibile utilizzare qualsiasi formatter all'interno del metodo split () in base alle posizioni della stringa.

Nel numero di cellule [27]: Inizializziamo una stringa e quindi divise quella stringa dallo spazio come formatter diviso. E otteniamo l'elenco di ogni stringa dell'intera stringa invece dei caratteri della stringa.

Nel numero di cellule [28]: Chiamiamo la funzione Ordined () e passiamo che str_Value_list come parametro in quello.

Nel numero di cellule [29]: Finalmente stampiamo l'elenco delle stringhe ordinate restituiti dalla funzione ordinata (). Nella cella [30], stampiamo di nuovo l'elenco originale per confermare che l'elenco originale non viene modificato dalla funzione Ordined ().

Ordinamento con l'argomento inverso = vero

Ora cambieremo il parametro predefinito della funzione ordinata () da false a true. Quando cambiamo il valore del retro da false a true, la funzione ordinata () ordinerà i dati in ordine decrescente.

In cellula [3]: Abbiamo creato un elenco di numeri di nome interi.

In cellula [4]: Passiamo l'elenco (numeri) alla funzione ordinata (). Insieme a questo, abbiamo cambiato il retro = vero. A causa del reverse = true, abbiamo ottenuto i dati in ordine decrescente.

In cellula [5]: Stampiamo l'elenco originale per confermare che non ha modificato l'elenco originale.

L'ordinamento del caso della stringa è importante

Il Python utilizza il codice Unicode per determinare il primo carattere della stringa prima di ordinare l'ordine decrescente o ascendente. In modo che, la funzione ordinata () tratterà i caratteri del caso di piccole e capitali diversi anche se lo stesso, come a o un valore, sarà diverso come mostrato di seguito:


Quindi, per capirlo, scriviamo di nuovo un piccolo programma di smistamento di stringhe.


In cellula [6]: Abbiamo creato un elenco di nomi di stringa con tutto il primo capitale del personaggio.

In cellula [7]: Quando abbiamo ordinato il names_case, abbiamo ottenuto il risultato desiderato.

In cellula [8]: Quando cambiamo il primo personaggio di Harman in Harman e Apple in Apple e ordiniamo di nuovo l'elenco, abbiamo ottenuto un risultato inaspettato perché il risultato mostra che la stringa Apple in 3a posizione nell'elenco che in realtà dovrebbe essere in posizione 1 ° nella indice di elenco. Questo viene fatto a causa del codice Unicode che Python ha usato per controllare il loro valore.

In cellula [11]: Stampiamo il nome del primo carattere con il loro valore.

ordinato () usando il parametro chiave

La funzione Ordined () ha una caratteristica più potente che è l'argomento chiave. Questa chiave si aspetta una funzione e ogni elemento nell'elenco deve passare a questa chiave prima di generare l'output finale.

Possiamo capirlo da questo esempio di base di ordinamento delle stringhe. Nel precedente, abbiamo scoperto che Python usava il metodo Unicode per determinare il primo valore del carattere e, in base a ciò, ordina gli elementi. Possiamo superarlo usando le caratteristiche chiave e il nostro risultato sarà secondo le nostre aspettative.


Ora, possiamo vederlo dal risultato, anche se il primo personaggio è piccolo o capitale, stiamo ottenendo risultati secondo le nostre aspettative perché la chiave che passiamo convertiamo ogni elemento in un piccolo caso prima di andare all'ordinamento. Tuttavia, il valore originale verrà stampato come abbiamo visto.

Ordine () funzione

La sintassi della funzione Ord () è

elenco.Ordina (tasto, inverso = falso)

La differenza principale tra la funzione Ord () e Ordined () è:


In cellula [18], Possiamo vedere che il metodo Ord () fa parte dell'elenco e non un metodo integrato. Anche il metodo Ord () non funziona con le tuple e i set. Il metodo Ordina () funziona solo con l'elenco in quanto fa parte della classe di elenco.

Abbiamo creato un nuovo elenco e chiamato il metodo Ord () mentre chiamiamo Ordined (), ma abbiamo ricevuto un errore perché, come abbiamo detto prima, non è un metodo integrato.

Possiamo chiamarlo solo usando l'elenco con l'operatore DOT come mostrato sopra nella sintassi.

Quindi chiamiamo di nuovo il metodo Ord () con l'elenco (numeri) e i nostri dati sono stati disposti in ordine crescente come per impostazione predefinita. Ma quando stampiamo l'elenco originale nel numero di celle [28], abbiamo scoperto che l'elenco originale è cambiato anche perché il metodo Ord () non restituisce un iteble.

Conclusione:

Quindi, abbiamo studiato i metodi Ord () e Ordined (). Abbiamo anche visto che il metodo Ord () non è un metodo integrato perché è una classe di elenco e può accedere solo all'oggetto elenco. Ma il metodo Ordined () è integrato e può anche funzionare con la tupla e i set.