如何在 Python 中使用 Reactive Extensions (Rx) LINQ?

How to use Reactive Extensions (Rx) LINQ in Python?

我下载RxPY and was watching the Rx tutorials的时候遇到:

那么我如何使用 RxPY 在 Python 中实现上述功能?特别是,查询 q = from x in xs where... 在句法上不是有效的 Python 代码——那么这将如何更改?

C# 中的所有 LINQ 查询都可以轻松转换为扩展方法 (where is for Where, and select is for Select):

In [20]: from rx import Observable

In [21]: xs = Observable.range(1, 10)

In [22]: q = xs.where(lambda x: x % 2 == 0).select(lambda x: -x)

In [23]: q.subscribe(print)
-2
-4
-6
-8
-10

您也可以使用 filter 代替 wheremap 代替 select:

In [24]: q = xs.filter(lambda x: x % 2 == 0).map(lambda x: -x)

In [25]: q.subscribe(print)
-2
-4
-6
-8
-10

您显示的图片包含 C# 代码,而不是 Python。 在 Python 中将如下所示:

from rx import Observable
xs = Observable.range(1, 10)
q = xs.filter(lambda x: x % 2 == 0).map(lambda x: -x)
q.subscribe(print)

一般文档可以在 http://reactivex.io 的文档部分找到。 Python 特定文档位于 https://github.com/ReactiveX/RxPY/blob/master/README.md.