Python itertools 的 Ruby 等价物是什么,特别是。组合/排列/groupby?
Python 的 itertools 模块在处理可迭代/迭代器方面提供了很多好处发电机。例如,
permutations(range(3)) --> 012 021 102 120 201 210
combinations('ABCD', 2) --> AB AC AD BC BD CD
[list(g) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D
Ruby 中的等效项是什么?
我所说的等效是指快速且内存高效(Python 的 itertools 模块是用 C 编写的)。
Python's itertools module provides a lots of goodies with respect to processing an iterable/iterator by use of generators. For example,
permutations(range(3)) --> 012 021 102 120 201 210
combinations('ABCD', 2) --> AB AC AD BC BD CD
[list(g) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D
What are the equivalent in Ruby?
By equivalent, I mean fast and memory efficient (Python's itertools module is written in C).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Array#permutation
、Array#combination
和Enumerable#group_by
自 1.8.7 起在 ruby 中定义。如果您使用的是 1.8.6,您可以从 Facets 或 active_support 或 backports 获取等效方法。用法示例:
Array#permutation
,Array#combination
andEnumerable#group_by
are defined in ruby since 1.8.7. If you're using 1.8.6 you can get equivalent methods from facets or active_support or backports.Example Usage: