如何通过循环访问多维Python列表的每个元素?
输入:如何通过循环访问多维Python列表的每个元素?,python,python-2.7,list,matrix,input,Python,Python 2.7,List,Matrix,Input,输入: import re def get_number(element): re_number = re.match("(\d+\.?\d*)", element) if re_number: return float(re_number.group(1)) else: return 1.0 def getvalues(equation): elements = re.findall("([a-z0-9.]+)", equat
import re
def get_number(element):
re_number = re.match("(\d+\.?\d*)", element)
if re_number:
return float(re_number.group(1))
else:
return 1.0
def getvalues(equation):
elements = re.findall("([a-z0-9.]+)", equation)
return [get_number(element) for element in elements]
eqn = []
eqn_no = int(raw_input("Enter the number of equations: "))
for i in range(eqn_no):
eqn.append(getvalues(str(raw_input("Enter Equation %d: " % (i+1)))))
print "Main Matrix: "
for i in range((eqn_no)):
for j in range((eqn_no+1)):
print "\t%f" %(eqn[i][j]),
print
print
equation=[]
equation=eqn
for k in range((eqn_no-1)):
for i in range((k+1),eqn_no):
for j in range((eqn_no+1)):
if(eqn[i][j]!=0):
eqn[i][j]=eqn[i][j]-(eqn[k][j]*(equation[i][k]/eqn[k][k]))
print "Matrix After %d step: " %(k+1)
for i in range(eqn_no):
for j in range((eqn_no+1)):
print "\t%f"%(eqn[i][j]),
equation[i][j]=eqn[i][j];
print
print
有人知道这到底是为什么吗?为什么零部分在变化而其他部分没有变化?我已经在C++中完成了这个代码,它在那里工作得很好,但是我面临很多问题。也许我是python的新手 以下内容应该适合您:
25x+5y+z=106.8
64x+8y+z=177.2
144x+12y+z=279.2
output is:
Main Matrix:
25.000000 5.000000 1.000000 106.800000
64.000000 8.000000 1.000000 177.200000
144.000000 12.000000 1.000000 279.200000
Matrix After 1 step:
25.000000 5.000000 1.000000 106.800000
0.000000 8.000000 1.000000 177.200000
0.000000 12.000000 1.000000 279.200000
Matrix After 2 step:
25.000000 5.000000 1.000000 106.800000
0.000000 8.000000 1.000000 177.200000
0.000000 0.000000 1.000000 279.200000
But it should be like
Main Matrix:
25.000000 5.000000 1.000000 106.800000
64.000000 8.000000 1.000000 177.200000
144.000000 12.000000 1.000000 279.200000
Matrix After 1 step:
25.000000 5.000000 1.000000 106.800000
0.000000 -4.80000 -1.56000 -96.208000
0.000000 -16.8000 -4.76000 -335.968000
Matrix After 2 step:
25.000000 5.000000 1.000000 106.800000
0.000000 -4.80000 -1.56000 -96.208000
0.000000 0.000000 0.699999 0.759981
例如:
def get_number(element):
re_number = re.match("(-?\d+\.?\d*)", element)
if re_number:
return float(re_number.group(1))
else:
return 1.0
def getvalues(equation):
elements = re.findall("(-?[a-z0-9.]+)", equation)
return [get_number(element) for element in elements]
eqn = []
eqn_no = int(raw_input("Enter the number of equations: "))
for i in range(eqn_no):
eqn.append(getvalues(str(raw_input("Enter Equation %d: " % (i+1)))))
print
for line in eqn:
print "|" + " ".join(["%3.1f" % value for value in line]) + "|"
这也适用于类似于
4.3x+6.7y=8
的情况,可能完全不会重复。该代码使用了预定义的值。我正在使用用户定义的输入。从用户那里获取输入如何?每次我尝试输入时,都会出现一些错误。我想为“n”输入n个输入,其中n也会输入。我已经更新了答案,以包括您现有的输入阶段,希望这会有所帮助。不确定您想要什么格式,但我已经更新了脚本,为您提供一个玩自己的想法。欢迎您。当你对最后的答案感到满意时,别忘了你可以接受它来获得你的学者徽章。我现在面临另一个问题。有些元素没有按应有的方式改变。你能帮我吗?我已经更新了我的代码。
Enter the number of equations: 2
Enter Equation 1: x+2y=3
Enter Equation 2: 4x+5y=6
|1.0 2.0 3.0|
|4.0 5.0 6.0|