Python 为矩阵定义一个函数并在列表中分别获取矩阵值的程序
Python Program to define a function for matrix and obtain values of matrices separately in as lists
我正在尝试创建一个函数,该函数在调用时生成一个矩阵。
Problem1: When I try to make a 2x3 or 3x2 and fill it: IndexError:
list index out of range
. Solved by Haminaa
def mtx():
m=int(raw_input("Rows"))
n=int(raw_input("Col"))
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
你一定在代码中看到了一个列表,就是获取输入的列表。
我想为每个矩阵分别获取 m 和 n 的值。还有列表。
比如我要得到这个
mtx()
m1=m
n1=n
l1=l
mtx()
m2=m
n2=n
l2=l
Problem2(a): Error that m is not defined(so are n and l).
此外,我尝试将m和n从定义中取出来作为参数。所以我能够得到 m 和 n.
def mtx(m,n):
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
m1=int(raw_input("Rows"))
n1=int(raw_input("Col"))
mtx(m1,n1)
m2=int(raw_input("Rows"))
n2=int(raw_input("Col"))
mtx(m2,n2)
Problem2(b):But is it possible to get list l?
If problem2(a) is solved, there'd be no problem2(b).
您以错误的方式理解列表。如果你想让m
表示行数,n
表示列数,你应该这样做:
a=[[0 for i in range(n)]for j in range(m)]
关于您的第二个问题,您可以在函数末尾使用 return
语句使函数 return 列表 l
。最后一个 print
在你的例子中没有做任何事情所以我删除了它:
def mtx(m,n):
a=[[0 for i in range(n)]for j in range(m)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
return l
如果您随后调用您的函数:
my_list = mtx(m1,m2)
列表 l
现在分配给 my_list
。
我正在尝试创建一个函数,该函数在调用时生成一个矩阵。
Problem1: When I try to make a 2x3 or 3x2 and fill it:
IndexError: list index out of range
. Solved by Haminaa
def mtx():
m=int(raw_input("Rows"))
n=int(raw_input("Col"))
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
你一定在代码中看到了一个列表,就是获取输入的列表。 我想为每个矩阵分别获取 m 和 n 的值。还有列表。
比如我要得到这个
mtx()
m1=m
n1=n
l1=l
mtx()
m2=m
n2=n
l2=l
Problem2(a): Error that m is not defined(so are n and l).
此外,我尝试将m和n从定义中取出来作为参数。所以我能够得到 m 和 n.
def mtx(m,n):
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
m1=int(raw_input("Rows"))
n1=int(raw_input("Col"))
mtx(m1,n1)
m2=int(raw_input("Rows"))
n2=int(raw_input("Col"))
mtx(m2,n2)
Problem2(b):But is it possible to get list l?
If problem2(a) is solved, there'd be no problem2(b).
您以错误的方式理解列表。如果你想让m
表示行数,n
表示列数,你应该这样做:
a=[[0 for i in range(n)]for j in range(m)]
关于您的第二个问题,您可以在函数末尾使用 return
语句使函数 return 列表 l
。最后一个 print
在你的例子中没有做任何事情所以我删除了它:
def mtx(m,n):
a=[[0 for i in range(n)]for j in range(m)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
return l
如果您随后调用您的函数:
my_list = mtx(m1,m2)
列表 l
现在分配给 my_list
。