python中的这种列表的定义方式输出是什么?

t = [[i+1+j*n for i in range(n)] for j in range(m)]

等效于:

# t = [[i+1+j*n for i in range(n)] for j in range(m)]

for j in range(m):
   for i in range(n):
      t[i][j] = (i+1+j*n)

这是一种列表推导(list comprehension)的语法,它将会创建一个mn的二维列表,其中每个元素都是(i+1+jn)。
其中,i和j都是从0开始,分别在内部和外部循环中迭代,n和m是已知的常量。

如果m = 2,n = 3的话,那么输出的结果就是:
t = [[1, 2, 3], [4, 5, 6]]

如果m = 3, n = 2的话,
t = [[1, 2], [4, 5], [7, 8]]

这是一种使用列表推导 (list comprehension) 的方式来定义二维列表。它会创建一个大小为 m*n 的二维列表,其中第 j 行第 i 列的元素为 (i+1+jn)。

m 和 n 都是已知的常量。

例如

  • 如果m=2, n=3,那么t就是 [[1, 2, 3], [4, 5, 6]]
  • 如果m = 3, n = 2的话,t就是[[1, 2], [4, 5], [7, 8]]

就是这么个东西:

df=[]
for j in range(m):
    d=[]
    for i in range(n):
        d.append(i+1+j*n)
    df.append(d)