我有一个非常普遍的问题,我讨厌通过编写所有可能的组合来解决这个问题,那么最好的方法是什么呢? 例如: x = [[['0','0','1'],['0','0','0'],['1','1','0']],[[' 0','0','1'],['0','0','0'],['1','1','0']],[['0','0' ,'1',['0','0','0'],['1','1','0']]]
所以x [i] [j] [k]都可以被访问等等。假设我想找到x [1] [1] [1]的伙伴,这样做的最佳方法是什么? / p>
答案 0 :(得分:0)
您的问题很平淡,并且解释了您要实现的目标以及遇到的错误/问题。此外,看起来你没有像研究这个话题那样做任何努力,就像你说的那样#34;真正常见的问题"。
假设"伙伴"表示邻居/相邻元素,您可以执行以下操作: 让我们将2D数组作为一个简单的例子,顶部和侧面的数字代表行和列,' - '和' X'是数组中的值。
0 1 2 3
0 - X - X
1 - - X X
2 X X - X
3 - - - -
假设你想在数组中找到arr [1] [1] =' - '。 您要做的就是检查,如果您在行或列中添加或减少一个位置,它是否会溢出数组(例如:数组中是否存在第二行,如果是,那么它就是&#39 ; s相邻是arr [2] [1])。您必须通过为每个行/列(/另一个维度)增加和减少一个值来执行此操作:
arr[1][0]
arr[1][2]
arr[0][1]
arr[2][1]
它们都存在于数组中,它的行跨越0-3,其列从0-3开始。
加分:如果您想要找到相邻元素的值,您需要做的就是要求显示现有相邻元素的值(call arr [1] [0])。
互联网上有更多的方法和技巧,尤其是Stack Overflow。查看此链接,可能会给您一些想法:2d array, all values are adjacent