Domanda

Conosco la mappa / riduci alghoritm e il suo utilizzo. Sta usando funzioni che si chiamano Mapper e Riduttori, ma trovo anche che le persone usino la parola Filtri.

I filtri sono gli stessi dei mapper o c'è qualche differenza significativa?

È stato utile?

Soluzione

Un filtro è come una mappa per la quale la funzione passata è sempre una "funzione caratteristica", ovvero una funzione che restituisce "sì" o " no " alla domanda "appartiene qui?"

In altre parole, pensa a un set definito come {x | x & # 8712; X e P (x) }. Filter prende il set di base, verifica se P (x) è vero e restituisce solo quei membri per i quali è vero.

Quindi { x | x è un numero naturale e dispari ( x )} è {1,3,5,7 ...}.

Una mappa applica una funzione arbitraria, quindi puoi considerarla come un insieme come {y | x & # 8712; X e y = f (x) }.

Quindi { y | x è un numero naturale e y = x & # 178; } è {1,4,9,16, ...}.

Altri suggerimenti

Il filtro accetta un " list " e una funzione, applica la funzione a tutti i membri dell'elenco e restituisce un nuovo elenco contenente solo membri in cui l'applicazione della funzione ha restituito true. Ad esempio:

l = [1,2,3,4]
l = filter(lambda x: x < 3, l)
print l # [1,2]

Mappa fa la stessa cosa, ma restituisce un elenco contenente i risultati dell'applicazione funzione:

l = [1,2,3,4]
l = map(lambda x: x < 3, l)
print l # [True,True,False,False]

Un filtro determina se un articolo deve essere mantenuto o rimosso. Un mapper traduce semplicemente il valore in un altro. Di conseguenza: il set di output di un'operazione su una mappa ha sempre le stesse dimensioni del set di input. L'output su un'operazione di filtro è più piccolo del set di input.

Generalmente, le funzioni della mappa accettano un set di input e una funzione e restituiscono un set contenente l'output della funzione per ciascun elemento di input. Un filtro accetta un set di input e una funzione booleana e restituisce un set contenente i valori di input per i quali la funzione restituisce true.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top