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

如何在Python中初始化二维数组?

堵泽宇
2023-03-14
问题内容

我开始使用python,并尝试使用一个二维列表,最初我在每个地方都填充了相同的变量。我想出了这个:

def initialize_twodlist(foo):
    twod_list = []
    new = []
    for i in range (0, 10):
        for j in range (0, 10):
            new.append(foo)
        twod_list.append(new)
        new = []

它提供了所需的结果,但感觉像是一种解决方法。有没有更简单/更短/更优雅的方式来做到这一点?


问题答案:

Python中经常出现的一种模式是

bar = []
for item in some_iterable:
    bar.append(SOME EXPRESSION)

这有助于激励列表理解的引入,从而将代码段转换为

bar = [SOME EXPRESSION for item in some_iterable]

它更短,有时更清晰。通常,你养成识别这些习惯的习惯,并经常用理解代替循环。

你的代码两次遵循此模式

twod_list = []                                       \                      
for i in range (0, 10):                               \
    new = []                  \ can be replaced        } this too
    for j in range (0, 10):    } with a list          /
        new.append(foo)       / comprehension        /
    twod_list.append(new)                           /


 类似资料:
  • 初始化一个给定行数和列数,及值的二维数组。 使用 Array.map() 生成 h 行,其中每个行都是一个长度为 w 的新数组。 如果未提供值 val ,则默认为 null。 const initialize2DArray = (w, h, val = null) => Array.from({ length: h }).map(() => Array.from({ length: w }).

  • 我有一个静态矩阵结果和静态矩阵添加方法以及一个静态矩阵显示(用于打印结果),我在主函数中编写了一个测试示例。 我的目标是:我想用这两种静态方法乘和加两个矩阵。 我得到这些错误"变量C和d可能没有被初始化"。有人能告诉我,问题是什么吗?

  • 问题内容: 我在python中初始化2D数组时遇到问题。我想要一个6x6的阵列,我做到了 但是当我这样做时: 注意,我只设置了1个项目,并且在所有行上都设置了“ replicated”。怎么了?我认为它与引用相同的列表有关,但是我该如何解决呢? 我估计 可以,但是初始化一个空的6x6数组似乎很长,如果我想要10000x10000数组怎么办,效率会很低? 更新 我还可以初始化2D数组的字典吗?我有一

  • 问题内容: 我想初始化一个多维列表。基本上,我想要一个10x10的网格-10个列表的列表,每个列表包含10个项目。 每个列表值都应初始化为整数0。 单行执行此操作的明显方法:将不起作用,因为它会生成一个包含10个引用的列表,该列表引用一个列表,因此更改任何行中的项都会更改所有行中的项。 我看过的文档讨论了用于复制列表的方法,但是在使用乘法器时仍然无法使用:与效果相同。 除了创建s循环之外,是否有一

  • 问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。

  • 问题内容: 声明多维数组并为其分配值的正确方法是什么? 这就是我所拥有的: 问题答案: 尝试将适当的行替换为: 您的代码不正确,因为子数组的长度为y,索引从0开始。因此,设置为或将失败,因为索引和超出范围。 ;是初始化矩形多维数组的正确方法。如果希望将其锯齿状(每个子数组的长度可能不同),则可以使用类似于此答案的代码。但是请注意,如果您想要一个完美的矩形多维数组,John关于必须手动创建子数组的主