Come utilizzare il modulo operatore in Python

Come utilizzare il modulo operatore in Python
Questo articolo coprirà una guida sull'uso del modulo "operatore" disponibile come parte della libreria Python predefinita. Il modulo operatore consente di utilizzare i simboli dell'operatore a livello di programmazione utilizzando varie funzioni. Ad esempio, è possibile moltiplicare due numeri usando una funzione invece di usare il simbolo "*". Le funzioni disponibili nel modulo dell'operatore sono utili quando si desidera passare le funzioni chiamabili come argomenti a un altro oggetto Python. Puoi anche serializzare le funzioni dell'operatore e archiviarle su disco in modo che possano essere ritirati in seguito. Alcune delle funzioni disponibili nel modulo dell'operatore possono anche essere utilizzate per eseguire una ricerca rapida degli oggetti negli oggetti di tipo iterabile. Le funzioni dell'operatore possono anche essere utilizzate per sostituire le funzioni Lambda del rivestimento in quanto forniscono una sintassi molto più pulita e più breve.

Sintassi di base e utilizzo

La sintassi delle funzioni disponibile nel modulo operatore è piuttosto semplice. Chiama una funzione specifica che restituisce un risultato dopo aver valutato gli argomenti forniti. Di seguito è riportato un esempio che mostra calcoli matematici eseguiti utilizzando varie funzioni disponibili nel modulo operatore.

operatore di importazione
Aggiunta = operatore.Aggiungi (5, 6)
sottrazione = operatore.sub (10, 4)
Moltiplicazione = operatore.MUL (3, 4)
Divisione = operatore.TrueDiv (6, 3)
Stampa (aggiunta)
Stampa (sottrazione)
Stampa (moltiplicazione)
Stampa (divisione)

La prima istruzione importa il modulo operatore. Vengono chiamate varie funzioni disponibili nel modulo dell'operatore come "Aggiungi", "sub", "Mul" e "TrueDiv" e vengono forniti due numeri in modo che le operazioni matematiche possano essere eseguite su di essi. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

11
6
12
2.0

Il codice sopra è equivalente alle seguenti affermazioni in Python:

aggiunta = 5 + 6
sottrazione = 10 - 4
moltiplicazione = 3 * 4
divisione = 6 /3
Stampa (aggiunta)
Stampa (sottrazione)
Stampa (moltiplicazione)
Stampa (divisione)

Nel primo campione di codice, invece di utilizzare segni o simboli dell'operatore, si chiama funzioni per fare gli stessi calcoli. Il modulo operatore include molte altre funzioni di utilità. Di seguito è un esempio che fa confronti tra due numeri.

operatore di importazione
uguale = operatore.Eq (5, 6)
lessthan = operatore.LT (10, 4)
lessThaneQualto = operatore.Le (10, 10)
NoteQual = Operator.NE (6, 3)
GreaterThan = Operator.GT (5, 1)
GreaterThaneQualto = operatore.GE (5, 6)
Stampa (uguale)
Stampa (lessthan)
Stampa (LessThanequalto)
Stampa (Notequal)
Stampa (Greaterthan)
Stampa (GreaterThanequalto)

Nel campione di codice sopra, varie funzioni come "EQ", "LT", "Le", "NE", "GT" e "GE" sono chiamati a determinare l'uguaglianza o la disuguaglianza di due numeri forniti come argomenti a queste funzioni. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Falso
Falso
VERO
VERO
VERO
Falso

Questo campione di codice è equivalente alle seguenti dichiarazioni:

uguale = 5 == 6
meno = 10 <4
LessThaneQualto = 10 <= 10
NoteQual = 6 != 3
Greaterthan = 5> 1
GreaterThaneQualto = 5> = 6
Stampa (uguale)
Stampa (lessthan)
Stampa (LessThanequalto)
Stampa (Notequal)
Stampa (Greaterthan)
Stampa (GreaterThanequalto)

Elenco di funzioni utili disponibili nel modulo operatore

Di seguito è riportata una tabella che mostra alcune delle funzioni utili disponibili nel modulo operatore e le loro dichiarazioni equivalenti. Questo tavolo è stato tratto dalla documentazione ufficiale di Python per il modulo dell'operatore.

Tipo di funzionamento / calcolo Funzione richiamabile Sintassi equivalente
Aggiunta Aggiungi (a, b) a + b
Concatenazione Concat (SEQ1, SEQ2) SEQ1 + SEQ2
Test di contenimento contiene (seq, obj) OBJ in seq
Divisione TrueDiv (A, B) a / b
Divisione floordiv (a, b) a // b
Bitwise e e_ (a, b) a & b
Bitwise esclusivo o xor (a, b) a ^ b
Inversione bitwise invertire (a) ~ a
Bitwise o OR_ (a, b) a | B
Esponenziale Pow (A, B) a ** b
Identità is_ (a, b) a è b
Identità is_not (a, b) a non è b
Assegnazione indicizzata SetItem (OBJ, K, V) obj [k] = v
Eliminazione indicizzata DELITEM (OBJ, K) Del Obj [K]
Indicizzazione getItem (OBJ, K) OBJ [k]
Tasto maiuscolo di sinistra lshift (a, b) UN <
Modulo mod (a, b) A % b
Moltiplicazione MUL (A, B) a * b
Moltiplicazione matrice matmul (a, b) a @ b
Negazione (aritmetica) neg (a) - UN
Negazione (logico) not_ (a) non a
Positivo pos (a) + UN
Shift destro rshift (a, b) a >> b
Assegnazione della fetta setitem (seq, slice (i, j), valori) seq [i: j] = valori
Eliminazione della fetta DELITEM (seq, slice (i, j)) Del Seq [i: J]
Affettare getItem (seq, slice (i, j)) seq [i: j]
Formattazione delle stringhe Mod (S, OBJ) s % obj
Sottrazione sub (a, b) a - b
Test della verità Verità (OBJ) obj
Ordinamento LT (A, B) UN
Ordinamento le (a, b) UN <= b
Uguaglianza Eq (a, b) a == b
Differenza ne (a, b) UN != b
Ordinamento ge (a, b) a> = b
Ordinamento GT (A, B) a> b

Puoi fare riferimento a questa tabella per trovare una funzione operatore appropriata adatta ai requisiti di programmazione.

Funzioni dell'operatore Inplace

Il modulo operatore include anche un insieme limitato di funzioni in grado di eseguire calcoli "sul posto". Questo viene fatto modificando l'oggetto stesso passandolo come argomento a una funzione dell'operatore. Tali nomi delle funzioni sono prefissi con il carattere "i". Ad esempio, per modificare un oggetto sul posto e aggiungere qualcosa ad esso, dovrai utilizzare la funzione "IADD" disponibile nel modulo operatore. Queste funzioni sono particolarmente utili per oggetti mutabili come i dizionari e gli elenchi di Python. Di seguito è riportato un esempio di codice:

operatore di importazione
A = [1, 2, 3, 4]
operatore.IADD (A, [5, 6, 7, 8])
Stampa (a)

Qui la funzione "IADD" è stata utilizzata per concatenare due oggetti di tipo elenco in Python. L'elenco che verrà modificato sul posto viene fornito come primo argomento, seguito dall'elenco da unire. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

[1, 2, 3, 4, 5, 6, 7, 8]

L'elenco completo delle funzioni sul posto disponibile nel modulo operatore è disponibile qui.

Utilizzo della funzione Itemgetter

È possibile utilizzare la funzione "itemgetter" disponibile nel modulo operatore per scegliere gli elementi da un elenco. Di seguito è riportato un esempio di base:

operatore di importazione
a = ["a", "b", "c", "d"]
Stampa (operatore.itemgetter (1, 2) (a))
stampa ((a [1], a [2]))

Il metodo Itemgetter ottiene un elemento dal suo indice ed è particolarmente utile per raccogliere più elementi in una sola go. La seconda dichiarazione mostra l'utilizzo della funzione Itemgetter in cui gli indici di due elementi sono forniti come argomenti. La funzione Itemgetter restituisce un oggetto richiamabile, che viene quindi chiamato fornendolo un elenco di Python come argomento. Il risultato finale della seconda e terza affermazione è lo stesso. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

('avanti Cristo')
('avanti Cristo')

Le chiamate multiple incatenate alla funzione Itemgetter possono anche essere scritte come segue:

operatore di importazione
a = ["a", "b", "c", "d"]
B = operatore.itemgetter (1, 2)
Stampa (B (A))

La funzione Itemgetter può anche essere utilizzata come chiave quando si ordina un elenco nidificato contenente altri elenchi o tuple. Ecco un esempio:

operatore di importazione
A = [["a", 2], ["b", 4], ["c", 1], ["d", 5]]
UN.Ordina (key = operatore.itemgetter (1))
Stampa (a)

L'argomento "chiave" nella funzione di ordinamento prende un oggetto richiamabile. Questo oggetto richiamabile viene eseguito su ciascun elemento dell'elenco prima di fare eventuali confronti per gli scopi di ordinamento. Fornendo la funzione Itemgetter Callable come chiave, si sta dicendo alla funzione di ordinamento per raccogliere un elemento nell'indice "1" da ciascun elenco nidificato e utilizzarlo per gli scopi di confronto. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

[['c', 1], ['a', 2], ['b', 4], ['d', 5]]

Conclusione

Il modulo dell'operatore non porta nulla di nuovo sulla tabella, in quanto utilizza i simboli dell'operatore sotto per eseguire i calcoli. Potresti benissimo scrivere semplici istruzioni usando i simboli dell'operatore. Tuttavia, sono utili negli scenari in cui si desidera eseguire calcoli a livello di programmazione richiamando le funzioni, passare funzioni richiamabili come argomenti e sostituire le dichiarazioni Lambda con qualcosa di più semplice.