Python Ordy Dizionario per valore

Python Ordy Dizionario per valore
In Python, un dizionario si riferisce a una raccolta non ordinata di articoli sotto forma di coppie di valore chiave.

I dizionari sono utili durante la memorizzazione dei dati mappati poiché ogni chiave è associata al valore corrispondente.

Sebbene i dizionari non siano in ordine, i dizionari vengono ordinati usando Inserire l'ordine Nelle versioni recenti di Python.

Impariamo come possiamo ordinare un dizionario in base ai valori.

Python Ordinad Function

Possiamo usare il smistato() funzione per ordinare un dizionario per valore. La sintassi della funzione è mostrata nel seguente:

ordinato (iterable, key = nessuno, reverse = false)

I parametri della funzione sono mostrati di seguito:

  1. iteble - si riferisce a un oggetto iterabile come un dizionario, elenco, ecc.
  2. chiave - si riferisce a una funzione che funziona come la chiave per l'ordinamento
  3. inversione - consente alla funzione di ordinare l'iterabile in ordine inverso

Possiamo usare la funzione ordinata per ordinare un dizionario per valore, come mostrato nell'esempio seguente:

db =
'Mysql': 1000,
'Postgresql': 20000,
'MongoDB': 250,
'Sqlite': 100,
'Redis': 5000

Sorted_Values ​​= Ordined (db.elementi (), key = lambda x: x [1], reverse = true)

Nel codice di esempio precedente, iniziamo creando il dizionario che desideriamo ordinare. Il dizionario contiene il tipo di database come chiave e il numero di record come valore.

Quindi usiamo il smistato() funzione per ordinare gli elementi nel nostro dizionario. Finalmente il db.Itmes La funzione ci consente di ottenere i valori del dizionario come un elenco iterabile.

Questo rimuove la necessità per noi di fare riferimento ai valori dalle posizioni dell'indice.

Forniamo una funzione anonima nel parametro chiave che ci consente di ordinare i valori dall'elenco.

Dato che vogliamo che i nostri dati vengano ordinati dal più grande al più piccolo, impostiamo il parametro inverso su "vero".

Ora, il codice precedente dovrebbe restituire un elenco con i valori ordinati. Per accedere agli elementi, possiamo utilizzare il seguente codice per il loop:

per io In Sorted_Values:

stampa (i [0], i [1])

Qui, INDICE 0 dell'elenco rappresenta la chiave del dizionario, mentre INDICE 1 rappresenta il valore.

Il codice precedente dovrebbe restituire come mostrato di seguito:

PostgreSQL 20000
Redis 5000
Mysql 1000
MongoDB 250
SQLite 100

Ordina la funzione con itemgetter

Il modulo dell'operatore Python ci fornisce il itemgetter () funzione e ci consente di ottenere un oggetto richiamabile che recupera un elemento dall'operando specificato.

In termini semplici, il itemgetter (N) La funzione creerà un oggetto richiamabile e prenderà l'ennesimo elemento (indice).

Per esempio:

operatore.itemgetter (3) ('Abcdefg')

La funzione sopra prenderà l'elemento nel terzo indice dalla stringa fornita. La funzione funziona con qualsiasi oggetto iterabile come elenchi, tuple, dizionari, ecc.

Possiamo combinare il itemgetter () funzione per ordinare i valori in un dizionario, come mostrato nel seguente esempio:

Dall'operatore di importazione
tup = ordinato (db.elementi (), key = itemgetter (1))
Sorted_Values ​​= chiave: valore per la chiave, valore in tup
Stampa (Sorted_Values)

Iniziamo importando la funzione Itemgetter dal modulo operatore nel codice precedente.

Successivamente, usiamo il db.elementi() funzione per ottenere le coppie di valore chiave come elenco di tuple. Per recuperare solo i valori, utilizziamo la funzione Itemgetter e passiamo l'indice di 1 come parametro.

Ciò dovrebbe restituire i valori del dizionario.

Una volta che abbiamo ordinato l'elenco, possiamo ripetere e creare un nuovo dizionario dai valori ordinati.

Questo dovrebbe restituire un dizionario ordinato come mostrato da segue:

'SQLite': 100, 'MongoDB': 250, 'Mysql': 1000, 'Redis': 5000, 'Postgresql': 20000

Si noti che l'ordine in questo è in ordine crescente.

Conclusione

Questo articolo mostra i metodi di smistamento di un dizionario per valori. Usando il smistato() funzione, è possibile impostare il parametro inverso su "false" per ordinare il dizionario in ordine crescente.