gpt4 book ai didi

ruby - 用 map 替换数组元素

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:48 25 4
gpt4 key购买 nike

我有两个数组:

@a = [ 
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
@b = [a, b, c]

我需要用 b 替换 a 中的第 n 列,例如:

swap_column(0)
#=> [a, 2, 3]
[b, 5, 6]
[c, 8, 9]

(如果有人想知道,这是为了使用 Cramer's rule 求解方程组。)

我想出的代码:

  def swap_column(n)
@a.map.with_index { |row, j| row[n] = @b[j] }
end

我如何摆脱这里的分配,以便 map 返回修改后的矩阵,同时保持 @a 完好无损?

最佳答案

你想要的是dup。此外,您的 map.with_index block 的返回值错误。

def swap_column(i)
@a.map.with_index{|row, j| row = row.dup; row[i] = @b[j]; row}
end

def swap_column(i)
@a.map.with_index{|row, j| row.dup.tap{|row| row[i] = @b[j]}}
end

关于ruby - 用 map 替换数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com