【问题标题】:Creating a 2D Array with all elements initially set to 'None'创建一个所有元素最初设置为“无”的二维数组
【发布时间】:2020-12-22 00:06:24
【问题描述】:

我发现this question 的答案很有帮助,但我以前从未见过以这种方式使用的关键字 None 并且无法理解它在下面的代码块中的功能:

def get_matrix(self, n, m):
    num = 1
    ***matrix = [[None for j in range(m)] for i in range(n)]***
    for i in range(len(matrix)):
        for j in range(len(matrix[i])):
            matrix[i][j] = num
            num += 1
    return matrix

如果有人能够澄清,提前谢谢你,我将重命名问题以更准确地反映所涉及的主题。

【问题讨论】:

  • @ggorlen:它既是关键字又是对象(如 Py3 中的 TrueFalse);你可以分辨出区别,因为它是一个有效的名称,但你不能命名其他任何东西None(就像TrueFalse那样)。 keyword 模块将其包含在 kwlist 中。
  • 整个函数体可以改为return [[j + i*m + 1 for j in range(m)] for i in range(n)]None 只是一个占位符,然后填充数组。

标签: python-3.x loops keyword


【解决方案1】:

它在填充之前创建了一个None 的二维数组。数组的值并不重要,因为它稍后会重新分配,但 None 比其他类型占用更少的空间(特别是数字,因为这是存储在这里的)

相关 - How to define a two-dimensional array?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2022-01-25
    • 2020-09-29
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多