python - 如何在 python 中创建整数方形列表?

标签 python list

我正在尝试创建一个方阵,给定一个整数输入。

例如:

# for n=3
m = [[1, 2, 3], [4, 5, 6],[7, 8, 9]] 

我的尝试:

m = list(list(range(1*i,(n+1)*i,i)) for i in range(1,n+1))
print(m)

打印这个结果:

[[1, 2, 3], [2, 4, 6], [3, 6, 9]]

数组必须是正方形的并且由连续的整数组成。

最佳答案

这是一种方法:

n = 3
m = [list(range(1+n*i, 1+n*(i+1))) for i in range(n)]

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

主要的误解似乎在于发现模式。例如,每列中的第一个值可以通过 1 + 3 * i 计算,其中 i 遍历 0, 1, 2。对于rangeend参数,只需要在公式中加上n,我们就可以使用恒等式:

n*i + n = n*(i+1)

顺便说一句,如果您乐于使用第 3 方库,这对于 NumPy 来说是微不足道的:

import numpy as np

n = 3
A = np.arange(1, n**2 + 1).reshape((n, n))

array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

关于python - 如何在 python 中创建整数方形列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741555/

相关文章:

python - Numpy算术

Python:如何关闭我的 CSV 输入和输出文件?

python - 在纯 python 中获取标记位索引

Python Import 即使在 __init__ 之后也找不到 packge

python - 为什么 list(set([2,1,3,6,5,3,6,4])) 会自动对列表进行排序?

python - 如何使用列表理解将 If 和 Else 的值添加到两个不同的列表中?

python - 使用现有元素引用修改列表?

r - 在组合具有相同名称的列表列表元素时保留嵌套元素名称

python - 从机翼坐标文件中读取和绘制坐标的最简单方法是什么?

python - python中的快速数据比较