Hvordan bruke operatørmodul i Python

Hvordan bruke operatørmodul i Python
Denne artikkelen vil dekke en guide om bruk av "operatør" -modulen som er tilgjengelig som en del av standard Python -biblioteket. Operatørmodulen lar deg bruke operatørsymboler programmatisk ved hjelp av forskjellige funksjoner. For eksempel kan du multiplisere to tall ved hjelp av en funksjon i stedet for å bruke "*" -symbol. Funksjonene som er tilgjengelige i operatørmodulen er nyttige når du vil passere kallbare funksjoner som argumenter til et annet Python -objekt. Du kan også serialisere operatørfunksjonene og lagre dem på disken slik at de kan velges igjen senere. Noen av funksjonene som er tilgjengelige i operatørmodulen, kan også brukes til å utføre hurtigvareoppslag i iterable type objekter. Operatørfunksjoner kan også brukes til å erstatte en foring Lambda -funksjoner, da de gir mye renere og kortere syntaks.

Grunnleggende syntaks og bruk

Syntaksen til funksjoner som er tilgjengelige i operatørmodulen er ganske rett frem. Du kaller en spesifikk funksjon som returnerer et resultat etter å ha evaluert argumenter som er levert til den. Nedenfor er et eksempel som viser matematiske beregninger som gjøres ved hjelp av forskjellige funksjoner som er tilgjengelige i operatørmodulen.

Importoperatør
Tillegg = operatør.Legg til (5, 6)
Subtraksjon = operatør.Sub (10, 4)
Multiplikasjon = operatør.Mul (3, 4)
Divisjon = operatør.trueediv (6, 3)
trykk (tillegg)
Print (subtraksjon)
print (multiplikasjon)
trykk (divisjon)

Den første uttalelsen importerer operatørmodulen. Neste forskjellige funksjoner som er tilgjengelige i operatørmodulen som “Legg til”, “Sub”, “Mul” og “TrueDiv”, blir kalt og to tall leveres til dem argumenter slik at matematiske operasjoner kan kjøres på dem. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

11
6
12
2.0

Koden over tilsvarer følgende utsagn i Python:

Tillegg = 5 + 6
subtraksjon = 10 - 4
multiplikasjon = 3 * 4
Divisjon = 6/3
trykk (tillegg)
Print (subtraksjon)
print (multiplikasjon)
trykk (divisjon)

I den første kodeprøven, i stedet for å bruke operatørskilt eller symboler, kaller du funksjoner for å gjøre de samme beregningene. Operatørmodulen inneholder mange andre slike verktøyfunksjoner. Nedenfor er et eksempel som gjør sammenligninger mellom to tall.

Importoperatør
lik = operatør.Eq (5, 6)
Lesshan = operatør.LT (10, 4)
LessThanequalto = operatør.le (10, 10)
NOTEQUAL = operatør.NE (6, 3)
STORERTHAN = Operatør.GT (5, 1)
GreaterThanequalto = operatør.GE (5, 6)
trykk (lik)
Print (Lesshan)
Print (Lesshanequalto)
Print (Notequal)
Print (GreaterThan)
Print (GreaterThanequalto)

I kodeprøven ovenfor kalles forskjellige funksjoner som “EQ”, “LT”, “LE”, “NE”, “GT” og “GE” for å bestemme likhet eller ulikhet til to tall levert som argumenter til disse funksjonene. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Falsk
Falsk
ekte
ekte
ekte
Falsk

Denne kodeprøven tilsvarer følgende utsagn:

lik = 5 == 6
Lesshan = 10 <4
LessThanequalto = 10 <= 10
Notequal = 6 != 3
STOREAN = 5> 1
GreaterThanequalto = 5> = 6
trykk (lik)
Print (Lesshan)
Print (Lesshanequalto)
Print (Notequal)
Print (GreaterThan)
Print (GreaterThanequalto)

Liste over nyttige funksjoner som er tilgjengelige i operatørmodulen

Nedenfor er en tabell som viser noen av de nyttige funksjonene som er tilgjengelige i operatørmodulen og deres tilsvarende utsagn. Denne tabellen er hentet fra offisiell Python -dokumentasjon for operatørmodulen.

Operasjon / beregningstype Kallbar funksjon Tilsvarende syntaks
Addisjon Legg til (a, b) a + b
Sammenkobling Concat (SEQ1, SEQ2) SEQ1 + SEQ2
Inneslutningstest Inneholder (SEQ, OBJ) obj i seq
Inndeling trueediv (a, b) a / b
Inndeling Floordiv (A, B) a // b
Bitvis og og_ (a, b) A & B
Bitvis eksklusiv eller xor (a, b) a ^ b
Bitvis inversjon inverter (a) ~ a
Bitvis eller eller_ (a, b) a | b
Eksponentiering POW (A, B) a ** b
Identitet er_ (a, b) a er b
Identitet is_not (a, b) a er ikke b
Indeksert oppgave setItem (obj, k, v) obj [k] = v
Indeksert sletting DelItem (obj, k) del obj [k]
Indeksering getItem (obj, k) obj [k]
Venstre shift lshift (a, b) en <
Modulo mod (a, b) a % b
Multiplikasjon mul (a, b) a * b
Matriksmultiplikasjon Matmul (a, b) a @ b
Negasjon (aritmetikk) neg (a) - en
Negasjon (logisk) ikke_ (a) ikke en
Positivt pos (a) + en
Høyre skift rshift (a, b) a >> b
Skiveoppgave setItem (seq, skive (i, j), verdier) Seq [i: j] = verdier
Skive sletting DelItem (seq, skive (i, j)) del seq [i: j]
Skiver getItem (seq, skive (i, j)) SEQ [I: J]
Strengformatering Mod (S, OBJ) s % obj
Subtraksjon sub (a, b) a - b
Sannhetstest sannhet (obj) obj
Bestilling LT (A, B) en
Bestilling le (a, b) en <= b
Likestilling Eq (a, b) a == b
Forskjell ne (a, b) en != b
Bestilling ge (a, b) a> = b
Bestilling gt (a, b) a> b

Du kan henvise til denne tabellen for å finne en passende operatørfunksjon som er egnet for dine programmeringskrav.

Inplace operatørfunksjoner

Operatørmodulen inkluderer også et begrenset sett med funksjoner som kan utføre beregninger "på stedet". Dette gjøres ved å endre selve objektet ved å gi det som et argument til en operatørfunksjon. Slike funksjonsnavn er prefiks med "jeg" -tegnet. For eksempel, for å endre et objekt på stedet og legge til noe i det, må du bruke "IADD" -funksjon tilgjengelig i operatørmodulen. Disse funksjonene er spesielt nyttige for mutable objekter som python -ordbøker og lister. Nedenfor er en kodeeksempel:

Importoperatør
a = [1, 2, 3, 4]
operatør.iadd (a, [5, 6, 7, 8])
trykk (a)

Her har funksjonen “IADD” blitt brukt til å sammenkoble to listetypeobjekter i Python. Listen som vil bli endret på stedet, leveres som det første argumentet, etterfulgt av listen som skal sammenføyes. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

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

Full liste over funksjoner som er tilgjengelige i operatørmodulen, finner du her.

Bruke ItemGetter -funksjonen

Du kan bruke "itemGetter" -funksjonen som er tilgjengelig i operatørmodulen for å velge elementer fra en liste. Nedenfor er et grunnleggende eksempel:

Importoperatør
a = ["a", "b", "c", "d"]
trykk (operatør.itemGetter (1, 2) (a))
trykk ((a [1], a [2]))

ItemGetter -metoden får et element etter indeksen, og den er spesielt nyttig for å plukke opp flere elementer på en gang. Den andre uttalelsen viser bruken av ItemGetter -funksjonen der indekser for to elementer leveres som argumenter. ItemGetter -funksjonen returnerer et kallbart objekt, som deretter kalles ved å gi den en Python -liste som et argument. Sluttresultatet av den andre og tredje uttalelsen er det samme. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

('B', 'C')
('B', 'C')

De flere lenket samtalene til ItemGetter -funksjonen kan også skrives som følger:

Importoperatør
a = ["a", "b", "c", "d"]
B = operatør.ItemGetter (1, 2)
Print (B (A))

ItemGetter -funksjonen kan også brukes som en nøkkel når du sorterer en nestet liste som inneholder andre lister eller tuples. Her er et eksempel:

Importoperatør
A = [["A", 2], ["B", 4], ["C", 1], ["D", 5]]
en.Sorter (nøkkel = operatør.itemGetter (1))
trykk (a)

Det "nøkkel" -argumentet i sorteringsfunksjonen tar et kallbart objekt. Dette kallbare objektet kjøres på hvert element på listen før du gjør noen sammenligninger for sorteringsformål. Ved å levere den kallbare ItemGetter -funksjonen som nøkkelen, forteller du sorteringsfunksjonen å hente et element på “1” -indeks fra hver nestede liste og bruke den til sammenligningsformål. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

[['C', 1], ['A', 2], ['B', 4], ['D', 5]]

Konklusjon

Operatørmodulen bringer ikke noe nytt på tabellen, ettersom den bruker operatørsymboler under for å utføre beregninger. Du kan godt skrive enkle utsagn ved hjelp av operatørsymboler. Imidlertid er de nyttige i scenarier der du vil programmatisk utføre beregninger ved å kalle opp funksjoner, passere slike kallbare funksjoner som argumenter og erstatte Lambda -utsagn med noe enklere.