Преобразуйте большое множество размера в мешанину в Руби

Я имею множество размера 35K и хочу преобразовать его в мешанину. Я смог преобразовать множество размера 12K со следующим методом.

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

Но, Когда я пробую множества, имеющие размер больше, чем 12K, он поднимает SystemStackError: уровень стека слишком глубокая ошибка.

Кто-либо может предложить? Что идет не так, как надо?

1
nl ja de
ничто неправильно с вашим сценарием, работы над моей машиной (ruby1.9.3-p125 OSX) tho это не являются эффективным способом сделать то, что вы делаете, я думаю, что ваш стек исчерпывает пространство.
добавлено автор c2h2, источник

1 ответы

Можно попробовать это

a = [*1..1_000_000].to_a
b = {}
a.each_slice(2){|k,v| b[k] = v}
1
добавлено
Большое спасибо.
добавлено автор Ashish Bista, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков