【发布时间】:2015-06-20 19:19:24
【问题描述】:
我正在尝试转置[[0, 1, 2], [3, 4, 5], [6, 7, 8]]。我得到[[2, 5, 8], [2, 5, 8], [2, 5, 8]]。
我可以看到p transposed_arr 行发生了什么,但不明白为什么会发生这种情况。在每次迭代中,它都会更改每一行,而不是仅更改一行。
def my_transpose(arr)
# number of rows
m = arr.count
#number of columns
n = arr[0].count
transposed_arr = Array.new(n, Array.new(m))
# loop through the rows
arr.each_with_index do |row, index1|
# loop through the colons of one row
row.each_with_index do |num, index2|
# swap indexes to transpose the initial array
transposed_arr[index2][index1] = num
p transposed_arr
end
end
transposed_arr
end
【问题讨论】:
-
谢谢卡里,它有效...
-
现在您的代码正在运行,请考虑将其发布到Code Review 以获得改进建议。如果您以前没有去过那里,我想您会对那里提供的建议印象深刻。那里发布的许多问题都是新手提出的,所以一点也不吓人。
标签: ruby arrays variable-assignment