如何编写Python函数生成仅含None值的矩阵?现有代码需如何修改?
现有代码存在的问题
- 语法错误:函数体内容没有正确缩进,Python中定义函数后,所有属于函数的代码都需要缩进4个空格,否则会直接触发语法报错
- 引用未定义变量:代码中使用的
matrix变量从未被声明初始化,运行时会直接抛出NameError - 逻辑完全不符合需求:现有代码的逻辑是遍历已有矩阵的元素存入
first_col列表,完全没有实现「生成row行、column列、所有元素为None的嵌套矩阵」的功能 - 无返回值:函数没有写return语句,调用后无法拿到预期的矩阵结果
修正后的实现
下面是符合需求的代码实现,调用empty_matrix(3,4)即可得到你要的结果:
def empty_matrix(row, column): matrix = [] # 逐行生成子列表 for _ in range(row): # 生成当前行:长度为column,所有元素为None current_row = [None] * column matrix.append(current_row) return matrix
也可以用更简洁的列表推导式实现:
def empty_matrix(row, column): return [[None for _ in range(column)] for _ in range(row)]
注意:不要写成
[[None]*column]*row的形式,这种写法生成的所有行都是同一个列表的引用,修改任意一行的元素都会同步修改所有行,会出现预期外的问题。
内容的提问来源于stack exchange,提问作者Lilly001
相关产品推荐
相关产品推荐

