Python 如何创建随机矩阵(不使用numpy)?

Python 如何创建随机矩阵(不使用numpy)?,python,python-3.x,Python,Python 3.x,我正在尝试创建一个数组。当行数和列数不相同时,末尾会出现一个空[] 我还希望它以[m x n]的正确矩阵形式显示 我不熟悉使用Python语言,这是我的第一个问题 我希望找到解决这个问题的办法 随机导入 m=int(输入(“行:”) n=int(输入(“列:”) Mat=[] 对于范围(0,n)内的i: 材料附加([]) 对于范围(0,m)内的i: 对于范围(0,n)内的j: Mat[i].追加(j) Mat[i][j]=0 Mat[i][j]=random.randint(1100) 印刷品(

我正在尝试创建一个数组。当行数和列数不相同时,末尾会出现一个空[]

我还希望它以[m x n]的正确矩阵形式显示

我不熟悉使用Python语言,这是我的第一个问题

我希望找到解决这个问题的办法

随机导入
m=int(输入(“行:”)
n=int(输入(“列:”)
Mat=[]
对于范围(0,n)内的i:
材料附加([])
对于范围(0,m)内的i:
对于范围(0,n)内的j:
Mat[i].追加(j)
Mat[i][j]=0
Mat[i][j]=random.randint(1100)
印刷品(垫子)
例如:

列:2
行数:3
输出:

[[7,49,61],[47,2,40],]
我需要这样:

[[7,49,61],
[47, 2, 40]]

问题就在这里,您专门为用户请求的每一列添加一行:

for i in range(0,n):
    Mat.append([])
而是对行使用变量:

for i in range(0, m):
    Mat.append([])

有几个地方需要做额外的工作,例如设置一个值,然后立即销毁它。

问题就在这里,用户请求的每一列都要添加一行:

for i in range(0,n):
    Mat.append([])
而是对行使用变量:

for i in range(0, m):
    Mat.append([])

有几个地方需要做额外的工作,比如设置一个值,然后立即销毁它。

mat=[[random.randint(1100)表示范围内(n)]表示范围内(m)]
Thnx但是形状呢!对于
mat
,当您将其打印出来时,您不会得到与numpy数组相同的输出。除非您正在使用
pprint.pprint(mat)
或类似于打印
mat
。在您的内部循环中,您可以这样做,而不是使用这三行
mat[i].append(random.randint(1100))
,但是上面的列表理解要比
mat=[[random.randint(1100)for u.In range(n)]for u.In range(m)]
Thnx但是形状呢!对于
mat
,当您将其打印出来时,您不会得到与numpy数组相同的输出。除非您使用的是
pprint.pprint(mat)
或类似的打印输出
mat
。在您的内部循环中,您可以这样做,而不是使用这三行
mat[i].append(random.randint(1100))
,但是上面的列表理解要更好,谢谢您,PruneNote先生,这只是解决了眼前的问题。各种注释都是对代码的很好的改进。谢谢你,PruneNote先生,这只是一个解决眼前问题的方法。各种注释是对代码的很好的改进。