如何通过循环访问多维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|