在Ruby中将大型数组转换为哈希值

时间:2013-02-07 12:01:31

标签: ruby

我有一个大小为35K的数组,并希望将其转换为哈希值。我能够使用以下方法转换大小为12K的数组。

a = []
12000.times { |i| a << i }
Hash[*a]

但是,当我尝试大小超过12K的数组时,它会引发SystemStackError:堆栈级别太深的错误。

有人可以建议吗?出了什么问题?

1 个答案:

答案 0 :(得分:1)

你可以试试这个

a = [*1..1_000_000].to_a
b = {}
a.each_slice(2){|k,v| b[k] = v}