我有一个大小为35K的数组,并希望将其转换为哈希值。我能够使用以下方法转换大小为12K的数组。
a = []
12000.times { |i| a << i }
Hash[*a]
但是,当我尝试大小超过12K的数组时,它会引发SystemStackError:堆栈级别太深的错误。
有人可以建议吗?出了什么问题?
答案 0 :(得分:1)
你可以试试这个
a = [*1..1_000_000].to_a
b = {}
a.each_slice(2){|k,v| b[k] = v}