RxPY - Operadores de filtrado

rebote

Este operador dará los valores de la fuente observables, hasta el intervalo de tiempo dado e ignorará el resto de los valores si pasa el tiempo.

Sintaxis

debounce(duetime)

Parámetros

duetime: valora en segundos o instancias de tiempo, la duración que decidirá los valores a devolver de la fuente observable.

Ejemplo

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

Salida

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

distinto

Este operador dará todos los valores que son distintos de la fuente observable.

Sintaxis

distinct()

Valor devuelto

Devolverá un observable, donde tendrá valores distintos de la fuente observable.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.distinct()
)
sub1.subscribe(lambda x: print("The distinct value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The distinct value is 1
The distinct value is 6
The distinct value is 15
The distinct value is 10
The distinct value is 40
The distinct value is 58
The distinct value is 20

element_at

Este operador dará un elemento de la fuente observable para el índice dado.

Sintaxis

element_at(index)

Parámetros

índice: el número que comienza desde cero para el que necesita el elemento de la fuente observable.

Valor devuelto

Devolverá un observable con el valor de la fuente observable con el índice dado.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.element_at(5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

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

filtrar

Este operador filtrará los valores de la fuente observable según la función de predicado dada.

Sintaxis

filter(predicate_func)

Parámetros

predicate_func: esta función decidirá los valores que se filtrarán de la fuente observable.

Valor devuelto

Devolverá un observable que tendrá los valores filtrados de la fuente observable en función de la función de predicado.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.filter(lambda x : x %2==0)
)
sub1.subscribe(lambda x: print("The filtered value is {0}".format(x)))

En el ejemplo, hemos filtrado todos los números pares.

Salida

E:\pyrx>python testrx.py
The filtered value is 6
The filtered value is 10
The filtered value is 6
The filtered value is 40
The filtered value is 10
The filtered value is 58
The filtered value is 20
The filtered value is 40

primero

Este operador dará el primer elemento de la fuente observable.

Sintaxis

first(predicate_func=None)

Parámetros

predicate_func: (opcional) Esta función decidirá el primer elemento que se seleccionará en función de la condición si se pasa.

Valor devuelto

Devolverá un observable con el primer valor de la fuente observable.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.first()
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The first element is 1

Ejemplo 2: uso de predicate_func

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.first(lambda x : x%2==0)
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)))

Salida

E:\pyrx>python test1.py
The first element is 6

ignore_elements

Este operador ignorará todos los valores de la fuente Observable y solo ejecutará llamadas para completar o error funciones de devolución de llamada.

Sintaxis

ignore_elements()

Valor devuelto

Devuelve un observable que llamará completo o error en función de la fuente observable.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.ignore_elements()
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)),
lambda e: print("Error : {0}".format(e)),
lambda: print("Job Done!"))

Salida

E:\pyrx>python testrx.py
Job Done!

último

Este operador dará el último elemento observable de la fuente.

Sintaxis

last(predicate_func=None)

Parámetros

predicate_func: (opcional) Esta función decidirá el último elemento que se seleccionará en función de la condición si se pasa.

Valor devuelto

Devolverá un observable con el último valor de la fuente observable.

Ejemplo

from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
   op.last()
)
sub1.subscribe(lambda x: print("The last element is {0}".format(x)))

Salida

E:\pyrx>python test1.py
The last element is 40

omitir

Este operador devolverá un observable, que omitirá la primera aparición de elementos de recuento tomados como entrada.

Sintaxis

skip(count)

Parámetros

recuento: el recuento es el número de veces que los elementos se omitirán de la fuente observable.

Valor devuelto

Devolverá un observable que omite valores según el recuento dado.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The element is 6
The element is 7
The element is 8
The element is 9
The element is 10

skip_last

Este operador devolverá un observable, que omitirá la última aparición de elementos de recuento tomados como entrada.

Sintaxis

skip_last(count)

Parámetros

recuento: el recuento es el número de veces que los elementos se omitirán de la fuente observable.

Valor devuelto

Devolverá un observable que omite valores según el recuento dado desde el último.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The element is 1
The element is 2
The element is 3
The element is 4
The element is 5

tomar

Este operador dará una lista de valores fuente en orden continuo según el recuento dado.

Sintaxis

take(count)

Parámetros

recuento: el recuento es el número de elementos que se darán a partir de la fuente observable.

Valor devuelto

Devolverá un observable que tiene los valores en orden continuo según el recuento dado.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The element is 1
The element is 2
The element is 3
The element is 4
The element is 5

take_last

Este operador dará una lista de valores de origen, en orden continuo desde el último según el recuento proporcionado.

Sintaxis

take_last(count)

Parámetros

recuento: el recuento es el número de elementos que se darán a partir de la fuente observable.

Valor devuelto

Devolverá un observable, que tiene los valores en orden continuo desde el último en función del recuento dado.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The element is 6
The element is 7
The element is 8
The element is 9
The element is 10