如何在Python中将for迭代器用作函数参数?

时间:2019-11-14 04:40:50

标签: python function for-loop matrix iterator

我正在尝试调用一个根据用户输入创建矩阵的函数,但它表示我尚未定义某些内容。

lstA = []
lstB = []
lstC = []

def get_list(data):
    lst = []
    for i in range(4):
        aux = []
        for j in range(4):
            aux.append(data)
        lst.append(aux)
    return lst

lstA = get_list(int(input(f'A i[{i}] j[{j}]: ')))
lstB = get_list(int(input(f'B i[{i}] j[{j}]: ')))
lstC = get_list(lstA[i][j] + lstB[i][j])

程序应通过将每个知悉的数字放在lstA[i][j]lstB[i][j]内,从用户那里获得两个4x4矩阵。

最后,lstC用于对AB求和。

错误消息:

Traceback (most recent call last):
  File "<string>", line 13, in <module>
NameError: name 'i' is not defined

[Program finished]

我该如何解决?

1 个答案:

答案 0 :(得分:0)

要将数据读入矩阵,请执行以下函数:

def get_lst():
  mat = [[]] * 4
  for i in range(4):
    mat[i] = [0] * 4
    for j in range(4):
      mat[i][j] = int(input(f'mat[{i}][{j}]: '))
  return mat

此功能将要求用户输入矩阵的每个元素,并使用用户输入的内容填充该位置。

现在这是您的使用方式:

lstA = get_lst()
lstB = get_list()

关于矩阵元素的求和,请参阅此answer