在决定学习 RxPy 时,我参加了 O'Reilly 的免费课程 Reactive Python for Data Science
我很快意识到代码是为 Python 3.5 和 RxPy2 编写的,所以我分叉了原始仓库并决定通过重构 RxPy3 的代码来学习
版本 2 的原始代码是:
from rx import Observable
items = ["Alpha", "Beta", "Gamma", "Delta", "Epsilon"]
Observable.from_(items) \
.group_by(lambda s: len(s)) \
.flat_map(lambda grp: grp.to_list()) \
.subscribe(lambda i: print(i))
我已经学会了导入from_
和operators
使用 `.pipe 将运算符串在一起。
到目前为止,我必须:
from rx import from_, operators as ops
items = ["Alpha", "Beta", "Gamma", "Delta", "Epsilon"]
from_(items).pipe(
ops.group_by(lambda s: len(s)),
ops.flat_map(lambda grp: grp.to_list()) # Todo grp.to_list() of a groupedobservable is not working - fix it
).subscribe(lambda i: print(i))
问题是它ops.group_by
提供了一组“groupedobservables”,这些ops.flat_map
代码grp.to_list()
不会映射到分组列表中。
原始代码在这里:Reactive Python for Data Science
我的重构代码是在这里派生的Reactive Python RxPy3,课程是 code_examples 文件6.4A_grouping_into_lists.py