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
此操作符将接收两个或多个Observables,并生成一个包含所有值的Observable序列。
语法
concat(observable1, observable2...)
参数
Observables:要连接的可观察对象的列表。
返回值
返回一个可观察对象,该对象包含源可观察对象的值合并的单个值。
示例
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函数接收一个可选的谓词函数作为参数。该函数的类型为布尔型,并且只有在满足条件时才会将值添加到输出中。
语法
count(predicate_function=None)
参数
count函数将谓词函数作为可选参数传入。该函数的类型为布尔型,只有满足条件时才会将值添加到输出中。
返回值
它将返回一个包含单个值的可观察对象,即源可观察对象的计数值。
示例 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
这个运算符将从源 observable 中给出具有最大值的 observable。
语法
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:comparer_function
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:使用comparer_function
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: 一个函数,用于对来自源 observable 的值进行处理,并返回一个 observale 形式的累加值。
seed: 可选的。默认值未被设置。它是初始值,用于在累加函数内部使用。
返回值
返回一个 observable,每个源 observable 的值都会通过累加函数进行处理,返回一个单个值作为输出。
示例
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