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

参数

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

Example 2: Using a predicate function

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: 可选参数。 此函数用于源可观察对象以比较值。

返回值

它从源 Observable 返回一个具有最大值的 Observable。

示例 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

Example 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

Example 2: Using 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 的值,并以 observable 的形式返回累积值。

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: 可选。 这是应用于来自源可观察值的值的函数。

返回值

它返回一个 observable,其中包含来自源 observable 的所有值的总和。

示例 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