RxPy3 group_by 创建 "groupedobservables" 但 flat_map 不起作用 - Reactive Python for Data Science Refactor
RxPy3 group_by creates "groupedobservables" but flat_map doesn't work - Reactive Python for Data Science Refactor
在决定学习 RxPy 时,我参加了 O'Reilly 的数据科学免费课程 Reactive Python
我很快意识到代码是为 Python 3.5 和 RxPy2 编写的,所以我分叉了原始 repo 并决定通过重构 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
我的重构代码在此处 fork Reactive Python RxPy3,课程是 code_examples 文件 6.4A_grouping_into_lists.py
由于to_list
是一个运算符,应该通过嵌套pipe
应用于分组:
from rx import of, operators as ops
of("Alpha", "Beta", "Gamma", "Delta", "Epsilon").pipe(
ops.group_by(lambda s: len(s)),
ops.flat_map(lambda grp: grp.pipe(ops.to_list()))
).subscribe(lambda i: print(i))
结果:
['Alpha', 'Gamma', 'Delta']
['Beta']
['Epsilon']
在决定学习 RxPy 时,我参加了 O'Reilly 的数据科学免费课程 Reactive Python
我很快意识到代码是为 Python 3.5 和 RxPy2 编写的,所以我分叉了原始 repo 并决定通过重构 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
我的重构代码在此处 fork Reactive Python RxPy3,课程是 code_examples 文件 6.4A_grouping_into_lists.py
由于to_list
是一个运算符,应该通过嵌套pipe
应用于分组:
from rx import of, operators as ops
of("Alpha", "Beta", "Gamma", "Delta", "Epsilon").pipe(
ops.group_by(lambda s: len(s)),
ops.flat_map(lambda grp: grp.pipe(ops.to_list()))
).subscribe(lambda i: print(i))
结果:
['Alpha', 'Gamma', 'Delta'] ['Beta'] ['Epsilon']