RxPY - Operadores matemáticos
promedio
Este operador calculará el promedio de la fuente observable dada y generará un observable que tendrá el valor promedio.
Sintaxis
average()
Valor devuelto
Devuelve un observable que tendrá el valor promedio.
Ejemplo
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)))
Salida
E:\pyrx>python testrx.py
Average is 5.5
concat
Este operador tomará dos o más observables y dará un solo observable con todos los valores de la secuencia.
Sintaxis
concat(observable1, observable2...)
Parámetros
Observables: Lista de observables a concatenar.
Valor devuelto
Un observable se devuelve con un valor único fusionado de los valores del observable de origen.
Ejemplo
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)))
Salida
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
contar
Este operador toma un observable con valores y lo convierte en un observable que tendrá un valor único. La función de conteo toma la función de predicado como un argumento opcional. La función es de tipo booleano y agregará valor a la salida solo si cumple la condición.
Sintaxis
count(predicate_function=None)
Parámetros
La función de conteo toma la función de predicado como un argumento opcional. La función es de tipo booleano y agregará valor a la salida solo si cumple la condición.
Valor devuelto
Devolverá un observable con un valor único, es decir, el recuento de la fuente observable.
Ejemplo 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)))
Salida
E:\pyrx>python testrx.py
The count is 10
Ejemplo 2: uso de una función de predicado
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)))
Salida
E:\pyrx>python testrx.py
The count of even numbers is 5
max
Este operador dará un observable con el valor máximo de la fuente observable.
Sintaxis
max(comparer_function=None)
Parámetros
comparer_function: parámetro opcional. Esta función se utiliza en observables de origen para comparar valores.
Valor devuelto
Devuelve un observable con el valor máximo de la fuente observable.
Ejemplo 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)))
Salida
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)))
Salida
E:\pyrx>python testrx.py
Max value is 280
min
Este operador dará un observable con un valor mínimo de la fuente observable.
Sintaxis
min(comparer_function=None)
Parámetros
comparer_function: parámetro opcional. Esta función se utiliza en observables de origen para comparar valores.
Valor devuelto
Devuelve un observable con valor mínimo de la fuente observable.
Ejemplo 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)))
Salida
E:\pyrx>python testrx.py
Min value is 12
Ejemplo 2: uso de 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)))
Salida
E:\pyrx>python testrx.py
Min value is 12
reducir
Este operador toma una función llamada función acumuladora, que se usa en los valores provenientes de la fuente observable, y devuelve los valores acumulados en forma de observable, con un valor semilla opcional pasado a la función acumuladora.Sintaxis
reduce(accumulator_func, seed=notset)
Parámetros
accumulator_func: Una función que se utiliza en los valores que provienen de la fuente observable y devuelve los valores acumulados en forma de observable.
seed:Opcional. No se establece el valor predeterminado. Es el valor inicial, que se utilizará dentro de la función de acumulador.
Valor devuelto
Devuelve un observable, con un único valor como salida de la función acumuladora aplicada a cada valor de la fuente observable.
Ejemplo
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)))
Salida
E:\pyrx>python testrx.py
The value is 55
suma
Este operador devolverá un observable con la suma de todos los valores de los observables de origen.
Sintaxis
sum(key_mapper=none)
Parámetros
key_mapper: opcional. Esta es la función, que se aplica a los valores provenientes de la fuente observable.
Valor devuelto
Devuelve un observable con la suma de todos los valores de la fuente observable.
Ejemplo 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)))
Salida
E:\pyrx>python testrx.py
The sum is 55
Ejemplo 2: uso de la función 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 función key_mapper, estamos sumando todos los valores por 1 y obteniendo la suma.
E:\pyrx>python testrx.py
The sum is 65