RxPY 转换操作符

RxPY 转换操作符

buffer

此操作符将从源可观察对象中收集所有值,并在满足给定的边界条件后以固定间隔发出它们。

语法

buffer(boundaries)

参数

boundaries:输入是一个可观察对象,决定何时停止以便发出已收集的值。

返回值

返回值是一个可观察对象,其中包含根据输入可观察对象的时间段从源可观察对象中收集的所有值。

示例

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

输出

E:\pyrx>python test1.py
The elements are [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ground_by

这个操作符将根据给定的key_mapper函数,对来自源Observable的值进行分组。

语法

group_by(key_mapper)

参数

key_mapper:这个函数将负责从源observable中提取键。

返回值

它返回一个根据key_mapper函数进行分组的observable。

示例

from rx import from_, interval, operators as op
test = from_(["A", "B", "C", "D"])
sub1 = test.pipe(
   op.group_by(lambda v: v[0])
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))

输出

E:\pyrx>python testrx.py
The element is <rx.core.observable.groupedobservable.GroupedObservable object
at
 0x000000C99A2E6550>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E65C0>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E6588>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E6550>

map

这个操作符将根据给定的mapper_func函数的输出,将源Observable的每个值转换为一个新的值。

语法

map(mapper_func:None)

参数

mapper_func:(可选)它将根据从此函数传出的值更改源可观察对象的值。

示例

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

输出

E:\pyrx>python testrx.py
The element is 1
The element is 4
The element is 9
The element is 16
The element is 25
The element is 36
The element is 49
The element is 64
The element is 81
The element is 100

scan

这个操作符将一个累加函数应用于来自源可观察对象的值,并返回一个带有新值的可观察对象。

语法

scan(accumulator_func, seed=NotSet)

参数

accumulator_func:将此函数应用于源可观察对象的所有值。

seed:(可选)在accumulator_func内部使用的初始值。

返回值

此操作符将返回一个可观察对象,该对象的新值将基于对源可观察对象的每个值应用的累加器函数。

示例

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

输出

E:\pyrx>python testrx.py
The element is 1
The element is 3
The element is 6
The element is 10
The element is 15
The element is 21
The element is 28
The element is 36
The element is 45
The element is 55

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程