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