gpt4 book ai didi

ruby - 如何将二维数组投影到 Ruby 中的新数组中?

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:16 25 4
gpt4 key购买 nike

source_array = Array.new(5) { Array.new(10) }
source_array[3][4] = 0
source_array[2][5] = 1
source_array[4][2] = 0.5

现在,创建一个与 source_array 具有相同维度的新数组 destination_arraydestination_array 仅包含值 0 和 1。 source_array 中的任何非 nil 值都映射到 destination_array 中的 1,所有 nil 值都映射到 0。

destination_array = Array.new(5) { Array.new(10, 0) }
...

在 Ruby (1.9.2) 中执行此操作的最佳方法是什么?

最佳答案

省略:

destination_array = Array.new(5) { Array.new(10, 0) }

而是使用:

destination_array = source_array.map { |subarray| subarray.map { |item| item.nil? ? 0 : 1 } }

这会给你你想要的。

这里的关键是让迭代函数Array#map为您执行工作,这样您就不必担心索引。这适用于您希望输入和输出数组具有相同维度的任何二维数组。

关于ruby - 如何将二维数组投影到 Ruby 中的新数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492979/

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