RxPY - Operatori matematici

media

Questo operatore calcolerà la media dalla sorgente osservabile data e produrrà un osservabile che avrà il valore medio.

Sintassi

average()

Valore di ritorno

Restituisce un osservabile che avrà il valore medio.

Esempio

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.average()
)
sub1.subscribe(lambda x: print("Average is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Average is 5.5

concat

Questo operatore prenderà due o più osservabili e darà un singolo osservabile con tutti i valori nella sequenza.

Sintassi

concat(observable1, observable2...)

Parametri

Osservabili: elenco di osservabili da concatenare.

Valore di ritorno

Viene restituito un osservabile con un singolo valore unito ai valori della sorgente osservabile.

Esempio

testrx.py

from rx import of, operators as op
test = of(2, 4, 6, 8, 10)
test2 = of(3,6,9,12,15)
sub1 = test.pipe(
   op.concat(test2)
)
sub1.subscribe(lambda x: print("Final value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Final value is 2
Final value is 4
Final value is 6
Final value is 8
Final value is 10
Final value is 3
Final value is 6
Final value is 9
Final value is 12
Final value is 15

contare

Questo operatore accetta un osservabile con valori e lo converte in un osservabile che avrà un unico valore. La funzione count accetta la funzione predicato come argomento opzionale. La funzione è di tipo Boolean e aggiungerà valore all'output solo se soddisfa la condizione.

Sintassi

count(predicate_function=None)

Parametri

La funzione count accetta la funzione predicato come argomento opzionale. La funzione è di tipo Boolean e aggiungerà valore all'output solo se soddisfa la condizione.

Valore di ritorno

Restituirà un osservabile con un unico valore, cioè il conteggio dalla sorgente osservabile.

Esempio 1

from rx import of, operators as op
test = of(1,2,3, 4,5, 6,7, 8,9, 10)
sub1 = test.pipe(
   op.count()
)
sub1.subscribe(lambda x: print("The count is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The count is 10

Esempio 2: utilizzo di una funzione predicato

from rx import of, operators as op
test = of(1,2,3, 4,5, 6,7, 8,9, 10)
sub1 = test.pipe(
   op.count(lambda x : x %2 == 0)
)
sub1.subscribe(lambda x: print("The count of even numbers is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The count of even numbers is 5

max

Questo operatore darà un osservabile con il valore massimo dalla sorgente osservabile.

Sintassi

max(comparer_function=None)

Parametri

comparer_function: parametro opzionale. Questa funzione viene utilizzata sulle sorgenti osservabili per confrontare i valori.

Valore di ritorno

Restituisce un osservabile con valore massimo dalla sorgente osservabile.

Esempio 1

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.max()
)
sub1.subscribe(lambda x: print("Max value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Max value is 280

Example 2: comparer_function

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.max(lambda a, b : a - b)
)
sub1.subscribe(lambda x: print("Max value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Max value is 280

min

Questo operatore darà un osservabile con valore minimo dalla sorgente osservabile.

Sintassi

min(comparer_function=None)

Parametri

comparer_function: parametro opzionale. Questa funzione viene utilizzata sulle sorgenti osservabili per confrontare i valori.

Valore di ritorno

Restituisce un osservabile con valore minimo dalla sorgente osservabile.

Esempio 1

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.min()
)
sub1.subscribe(lambda x: print("Min value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Min value is 12

Esempio 2: utilizzo di comparer_function

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.min(lambda a, b : a - b)
)
sub1.subscribe(lambda x: print("Min value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
Min value is 12

ridurre

Questo operatore accetta una funzione chiamata funzione accumulator, che viene utilizzata sui valori provenienti dalla sorgente osservabile, e restituisce i valori accumulati sotto forma di osservabile, con un valore seed opzionale passato alla funzione accumulator.

Sintassi

reduce(accumulator_func, seed=notset)

Parametri

accumulator_func: Una funzione che viene utilizzata sui valori provenienti dalla sorgente osservabile e restituisce i valori accumulati sotto forma di osservabile.

seed:opzionale. Il valore predefinito non è impostato. È il valore iniziale, da utilizzare all'interno della funzione accumulatore.

Valore di ritorno

Restituisce un osservabile, con un unico valore come output dalla funzione accumulatore applicato su ogni valore della sorgente osservabile.

Esempio

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.reduce(lambda acc, x: acc + x)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is 55

somma

Questo operatore restituirà un osservabile con la somma di tutti i valori delle osservabili di origine.

Sintassi

sum(key_mapper=none)

Parametri

key_mapper: opzionale. Questa è la funzione, che viene applicata ai valori provenienti dalla sorgente osservabile.

Valore di ritorno

Restituisce un osservabile con la somma di tutti i valori osservabili dalla sorgente.

Esempio 1

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.sum()
)
sub1.subscribe(lambda x: print("The sum is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The sum is 55

Esempio 2: utilizzo della funzione key_mapper

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.sum(lambda a: a+1)
)
sub1.subscribe(lambda x: print("The sum is {0}".format(x)))

Usando la funzione key_mapper, stiamo aggiungendo tutti i valori per 1 e ottenendo la somma di esso.

E:\pyrx>python testrx.py
The sum is 65