Mam tablicę:Jak mogę przetransponować różne ruby?
arr=[[1,2,3],[4,5],[6]],
Mam następujący kod:
arr.transpose
ale to nie działa, jak go rozwiązać?
jestem coraz
[[1,2,3],[4,5],[6]].transpose
IndexError: element size differs (2 should be 3)
from (irb):13:in `transpose'
from (irb):13
from /home/durrant
moje rozwiązanie:
arr.reduce(&:zip).map(&:flatten)
wyjściowy:
[[1, 4, 6], [2, 5, nil], [3, nil, nil]]
Jaki jest oczekiwany wynik dla danej tablicy? – falsetru
Zobacz http://stackoverflow.com/questions/21455310/why-does-ruby-have-zip-and-transpose-when-they-do-the-same-thing, aby zrozumieć, dlaczego #transpose nie działa. –
Odpowiedź, chociaż nie mogę zaksięgować jako takiej, jest taka, że liczba elementów musi być taka sama dla tej operacji. –