RxPY 过滤操作符

RxPY 过滤操作符

debounce

此操作符将从源可观察对象中获取值,直到给定的时间段,并忽略剩余的值(如果时间过去)。

语法

debounce(duetime)

参数

duetime:此值可以是以秒或时间实例表示的持续时间,用于确定从源可观察对象返回的值。

示例

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)))

输出

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

distinct

这个操作符将返回与源 Observable 不重复的所有值。

语法

distinct()

返回值

它将返回一个可观察对象,其中将具有来自源可观察对象的不同值。

示例

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)))

输出

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

此运算符将返回给定索引下源可观察对象的元素。

语法

element_at(index)

参数

index: 从零开始计数,表示您需要从源可观察对象中获取的元素的索引。

返回值

它将返回一个具有给定索引的源可观察对象的值的可观察对象。

示例

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)))

输出

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

filter

此操作符将根据给定的断言函数从源可观察对象中筛选值。

语法

filter(predicate_func)

参数

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.filter(lambda x : x %2==0)
)
sub1.subscribe(lambda x: print("The filtered value is {0}".format(x)))

在这个示例中,我们过滤了所有的偶数。

输出

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

first

该运算符将从源可观察对象中获取第一个元素。

语法

first(predicate_func=None)

参数

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()
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)))

输出

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

示例2:使用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)))

输出

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

ignore_elements

此操作符将忽略源Observable中的所有值,只会执行complete或error回调函数的调用。

语法

ignore_elements()

返回值

它返回一个 observable,该 observable 将根据源 observable 调用 complete 或 error。

示例

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!"))

输出

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

last

该操作符将从源 Observable 中获取最后一个元素。

语法

last(predicate_func=None)

参数

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.last()
)
sub1.subscribe(lambda x: print("The last element is {0}".format(x)))

输出

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

skip

这个操作符将返回一个Observable,它将跳过输入中取出的第一个count项的出现。

语法

skip(count)

参数

count:count 是从源可观测对象中跳过的次数。

返回值

它将返回一个基于给定的 count 跳过值的可观测对象。

示例

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)))

输出

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

该操作符会返回一个Observable,该Observable会跳过作为输入的count项中的最后一个项。

语法

skip_last(count)

参数

count: count是每次从源可观察对象中跳过的项数。

返回值

它将返回一个可观察对象,该对象根据给定的计数跳过值。

示例

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)))

输出

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

这个操作符将根据所给的计数,连续按顺序给出源值的列表。

语法

take(count)

参数

count:count是从源observable获取的项目数量。

返回值

它将返回一个observable,根据给定的count以连续的顺序包含值。

示例

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)))

输出

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

此运算符根据给定的计数,按连续顺序提供源值的列表。

语法

take_last(count)

参数

count: 该参数表示从源可观察对象中获取的项的数量。

返回值

它将返回一个可观察对象,根据给定的数量以连续的顺序返回值。

示例

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)))

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程