当前位置: 首页 > 面试题库 >

如何在Python中定义二维数组

梁学真
2023-03-14
问题内容

我想定义一个没有初始化长度的二维数组,如下所示:

Matrix = [][]

但这不起作用…

我已经尝试过下面的代码,但是它也是错误的:

Matrix = [5][5]

错误:

Traceback ...

IndexError: list index out of range

我怎么办呢?


问题答案:

从技术上讲,你正在尝试索引未初始化的数组。你必须先使用列表初始化外部列表,然后再添加项目。Python将其称为“列表理解”。

# Creates a list containing 5 lists, each of 8 items, all set to 0
w, h = 8, 5;
Matrix = [[0 for x in range(w)] for y in range(h)] 

你现在可以将项目添加到列表中:

Matrix[0][0] = 1
Matrix[6][0] = 3 # error! range... 
Matrix[0][6] = 3 # valid

请注意,矩阵是“ y”地址主地址,换句话说,“ y索引”位于“ x索引”之前。

print Matrix[0][0] # prints 1
x, y = 0, 6 
print Matrix[x][y] # prints 3; be careful with indexing! 

尽管你可以根据需要命名它们,但是如果你对内部列表和外部列表都使用“ x”,并且希望使用非平方矩阵,那么我会以这种方式来避免由于索引而引起的混淆。



 类似资料:
  • 问题内容: 我开始使用python,并尝试使用一个二维列表,最初我在每个地方都填充了相同的变量。我想出了这个: 它提供了所需的结果,但感觉像是一种解决方法。有没有更简单/更短/更优雅的方式来做到这一点? 问题答案: Python中经常出现的一种模式是 这有助于激励列表理解的引入,从而将代码段转换为 它更短,有时更清晰。通常,你养成识别这些习惯的习惯,并经常用理解代替循环。 你的代码两次遵循此模式

  • 问题内容: 我有2d数组,尺寸为3x10,我想按从低到高的第二行中的值进行排序。 问题答案: Python本身没有“ 2d数组”-它具有(1d)内置列表,以及(1d)标准库模块array中的数组。有第三方库,例如它确实提供了Python的使用多维数组,当然你会提这样的第三方库,如果你是“Python中的”使用其中的一部分,而不是只是说, 正确的 ? -) 因此,我假设“ 2d数组”是指列表列表,例

  • 我打算将2D中布尔数组的值从True更改为false,但代码不起作用。即使我使用语句B[r][c]=false,输出结果也是一样的。有人能帮我吗,谢谢。

  • 问题内容: 在一个程序中,我正在写一个旋转二维数组的需求。在寻找最佳解决方案时,我发现了这种令人印象深刻的一线功能: 我现在在程序中使用它,它按预期工作。我的问题是,我不了解它是如何工作的。 如果有人可以解释所涉及的不同功能如何实现所需的结果,我将不胜感激。 问题答案: 考虑以下二维列表: 让我们将其逐步分解: 此列表传递给使用参数unpacking,因此调用最终等效于此: 希望注释能够清楚说明其

  • 问题内容: 我想知道如何在Python中声明一个二维数组。 前两个任务工作正常。但是当我尝试做时,出现以下错误: 我在尝试声明二维数组时做任何愚蠢的事情吗? 编辑: 但是我不知道数组(行和列)中的元素数量。 问题答案: 您不会在Python中“声明”数组或其他任何东西。您只需分配一个(新)变量。如果要使用多维数组,只需添加一个新数组作为数组元素。 要么

  • 问题内容: 给定3乘3的numpy数组 为了规范二维数组的行,我想到了 必须有更好的方法,不是吗? 可能需要澄清:通过标准化我的意思是,每行条目的总和必须为1。但是我认为这对于大多数人来说都是显而易见的。 问题答案: 广播确实对此有好处: 重塑row_sums从存在到存在。当你这样做,并会相互播出。 您可以 在此处 了解更多有关 广播的 信息 ,甚至可以 在此处 了解更多。