RxPY – 数学运算符
average
这个运算符将从给定的源观测值中计算出平均值,并输出一个具有平均值的观测值。
语法
average()
返回值
它返回一个将具有平均值的可观察数据。
例子
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)))
输出
E:\pyrx>python testrx.py
Average is 5.5
concat
这个操作符将接收两个或多个观察变量,并给出一个具有序列中所有值的单一观察变量。
语法
concat(observable1, observable2...)
参数
观察变量:要串联的观察变量的列表。
返回值
返回一个由源观察变量的值合并成的单一值的观察变量。
例子
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)))
输出
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
count
这个操作符接收一个带值的可观察变量,并将其转换为一个将有单一值的可观察变量。计数函数接收谓词函数作为一个可选的参数。该函数是布尔类型的,只有在满足条件的情况下才会在输出中添加值。
语法
count(predicate_function=None)
参数
计数函数将谓词函数作为一个可选的参数。该函数的类型为布尔型,只有在满足条件的情况下才会在输出中添加数值。
返回值
它将返回一个具有单个值的观察变量,即来自源观察变量的计数。
例子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)))
输出
E:\pyrx>python testrx.py
The count is 10
例2:使用一个谓词函数
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)))
输出
E:\pyrx>python testrx.py
The count of even numbers is 5
max
这个操作符将给出一个具有源观测值的最大值的观测值。
语法
max(comparer_function=None)
参数
comparer_function:可选参数。这个函数用于源观测点上,以比较数值。
返回值
它返回一个具有源观察变量最大值的观察变量。
例子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)))
输出
E:\pyrx>python testrx.py
Max value is 280
例子2:比较器_功能
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)))
输出
E:\pyrx>python testrx.py
Max value is 280
min
该操作符将从源观察变量中给出一个具有最小值的观察变量。
语法
min(comparer_function=None)
参数
comparer_function:可选参数。这个函数用于源观测点上,以比较数值。
返回值
它返回一个具有源观察变量的最小值的观察变量。
例子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)))
输出
E:\pyrx>python testrx.py
Min value is 12
例2:使用比较器_功能
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)))
输出
E:\pyrx>python testrx.py
Min value is 12
reduce
这个操作符接收了一个叫做累加器函数的函数,该函数用于来自源观测器的值,它以观测器的形式返回累加的值,并有一个可选的种子值传递给累加器函数。
语法
reduce(accumulator_func, seed=notset)
参数
accumulator_func: 一个用来处理来自源观测点的值的函数,它以观测点的形式返回累积值。
seed: 可选的。默认值不被设置。它是初始值,将在累加器函数中使用。
返回值
它返回一个可观察变量,其中有一个单一的值,作为累积器函数的输出,应用于源观察变量的每个值。
例子
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)))
输出
E:\pyrx>python testrx.py
The value is 55
sum
这个操作符将返回一个具有来自源观测变量的所有值之和的观测变量。
语法
sum(key_mapper=none)
参数
key_mapper:可选。这是一个函数,它被应用于来自源观测点的值。
返回值
它返回一个具有来自源观测点的所有值之和的观测点。
示例 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)))
输出
E:\pyrx>python testrx.py
The sum is 55
例2:使用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)))
使用key_mapper函数,我们将所有的值加1并得到它的总和。
E:\pyrx>python testrx.py
The sum is 65