【问题标题】:How do you map values from one 2d array to another 2d array?如何将值从一个二维数组映射到另一个二维数组?
【发布时间】:2014-09-03 23:30:20
【问题描述】:
# input
a = [[1, 0, 1], [0, 0, 0], [0, 1, 1]]
b = [[-3, -3, -3], [-3, -3, -3], [-3, -3, -3]]

如何在数组 a 中有 1 的地方将数组 b 更改为 -1?

# desired output
b = [[-1, -3, -1], [-3, -3, -3], [-3, -1, -1]]

在旁注中,我对每次在这里发帖都像在蛋壳上行走一样感到非常沮丧。我因提供太多信息而在一个问题中被打分,然后在这里,当我试图将其保留为一个最小的示例时,我因太少而被打分两次。我是新人,我不是数学背景。我是一名前海军陆战队员,患有严重的创伤后应激障碍和 1 型双极,我从尝试学习代码中得到解脱。我对我在这里提问时遇到的一些刻薄的攻击感到非常沮丧。是的,我已经阅读了比法律文件更长的发布说明,但是当我对我所问的内容知之甚少甚至一无所知时,我通常很难辨别提出这些问题的正确上下文是什么。我想这个网站对于新手来说只是一个大雾节,直到我们足够好编码为止。就这样吧,稍微发泄一下,也许一个模组会来找我说话,让我苦恼应该如何发泄这种愤怒......

【问题讨论】:

  • 你能举个例子吗?
  • 嗨,欢迎来到堆栈溢出!我们大多数人都不确定您所说的地图到底是什么意思。也许您可以给我们一个示例输入以及您期望输出的样子...这将有助于说明清楚。
  • 您好,很抱歉我的问题不清楚,我对编码还很陌生。我的意思是,如果我有一个像 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 这样的二维数组,而我有一个像 [[x, x, x] 这样的二维数组,[x, x, x],[x, x, x]] 我想将第二个数组更改为 [[1, x, x],[x, 5, x], [x, x, 9] ] 将我从数组 1 中选择的值映射到数组 2 中的相同位置,覆盖数组 2 的值。再次抱歉我仍在学习中缺乏清晰度。 ——
  • 如果您提供一个完整的输入和输出示例没有任何exes,这将非常有帮助。这些特殊值的位置是如何指定的;它们总是在对角线上还是有其他指定它们的数组?到目前为止,您尝试了哪些方法,为什么没有成功?
  • 谢谢大卫,为正义而编辑,我希望这是对我想要掌握的内容的更好解释......

标签: ruby arrays map 2d


【解决方案1】:

嵌套映射应该可以工作:

array = [[1, 1], [2, 2]]
array2 = array.map do |a|
  a.map do |num|
    num + 1
  end
end
# array2 should be [[2, 2], [3, 3]]

【讨论】:

  • 这映射了内部数组的所有值,并且似乎不符合问题中“映射特定值”的描述。问题不清楚。
  • 短语“映射特定值”非常模糊;我从 OP 得到的唯一一件事是他想在二维数组上映射(可能指的是 Array#map),所以我的回答显示了如何做到这一点。
  • 当问题像这个一样模糊时,我认为根据英雄假设提供答案是没有帮助的,因为它会降低 OP 澄清(或撤回)问题的动力。此外,我相信如果他们不准备澄清,当被问到时,他们不值得帮助。
  • 您好,很抱歉我的问题不清楚,我对编码还很陌生。我看到 Cary Swoveland 喜欢在帮助下采取让步的方法,所以我将忽略该用户。我的意思是,如果我有一个像 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 这样的二维数组,而我有一个像 [[x, x, x] 这样的二维数组,[x, x, x],[x, x, x]] 我想将第二个数组更改为 [[1, x, x],[x, 5, x], [x, x, 9] ] 将我从数组 1 中选择的值映射到数组 2 中的相同位置,覆盖数组 2 的值。再次抱歉我仍在学习中缺乏清晰度。
  • 也感谢大卫试图帮助我下班后我会尝试你所说的。如果您是编码新手,在这个网站上做任何事情,用户对您的问题 -1 的兴奋程度是不可能的......
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 2022-12-07
  • 2021-12-31
  • 2012-11-13
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
相关资源
最近更新 更多