Ruby相当于Python的list(),用于枚举

时间:2013-11-16 16:39:51

标签: python ruby list enumerable

在Python中,我们可以在枚举上使用list()方法来创建基于枚举器项的有序列表。你将如何在Ruby可枚举中实现这一目标?

目前我正在使用它,但感觉有点黑客攻击:

data = []
e = # .. enumerable ..
e.each do |d|
  data << d
end

4 个答案:

答案 0 :(得分:1)

你可以做数组(列表):

(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]

其他 iterables

相同
my_array.to_a

答案 1 :(得分:1)

试试这个: -

e = # .. enumerable ..
e.to_a

e.entries

答案 2 :(得分:0)

如果你想要聪明,你也可以使用其他几种可枚举的方法。例如:

enumerable.map { | x | x }

enumerable.select { true }

...或我个人最喜欢的,

enumerable.inject( [ ] ) { | c, i | c + [ i ] }

答案 3 :(得分:0)

在Python list("a")中产生一个列表;在Ruby "a".to_a中出错。 splat运算符称为'unsplattable object results in the object itself. So maybe this is more equivalent to Pythons list`:

a = ("a".."f").each_cons(2)
[*a] #=> [["a", "b"], ["b", "c"], ["c", "d"], ["d", "e"], ["e", "f"]]

[*"a"] #=> ["a"]