2013-12-08 114 views
1

從列表中讀取文件時遇到問題;與列表和打印列表相關的Python問題

input1,input2,input3 = eval(input()) 
inputList1 = [] 
inputList2 = [] 
inputList3 = [] 
inputListA = [] 
inputListB = [] 
inputListC = [] 
rootList1 = [] 
rootList2 = [] 

print(format('Coefficients','15s'),format('# of Roots','15s'),'Roots') 
print('==================================================') 

while (input1 != 0 and input2 != 0 and input3 != 0): 
    rootProc = QuadEq(input1,input2,input3) 
    rootS = rootProc.discRoot() 
    if (rootS == 0): 
     inputList2.append(input1) 
     inputList2.append(input2) 
     inputList2.append(input3) 
     inputListB.append(inputList2[:]) 
     rootList1.append(rootProc.RootOne()) 
    elif (rootS > 0): 
     inputList3.append(input1) 
     inputList3.append(input2) 
     inputList3.append(input3) 
     inputListC.append(inputList3[:]) 
     rootList2.append(rootProc.RootOne()) 
     rootList2.append(rootProc.RootTwo()) 
    else: 
     inputList1.append(input1) 
     inputList1.append(input2) 
     inputList1.append(input3) 
     inputListA.append(inputList1[:]) 

    input1,input2,input3 = eval(input()) 

for i in range(len(inputListA)): 
    print(format(inputListA,'5s'), format('No Real Roots','>15s'), '') 

這隻打印我想要做的一部分,但我一直在做這個測試。我希望它打印爲貌似

1 1 1 No Real Roots 
9 -2 14 No Real Roots 
6 2 10 No Real Roots 

我得到編譯後:

[[1, 1, 1], [1, 1, 1, 9, -2, 14], [1, 1, 1, 9, -2, 14, 6, 2, 10]] No Real Roots 
[[1, 1, 1], [1, 1, 1, 9, -2, 14], [1, 1, 1, 9, -2, 14, 6, 2, 10]] No Real Roots 
[[1, 1, 1], [1, 1, 1, 9, -2, 14], [1, 1, 1, 9, -2, 14, 6, 2, 10]] No Real Roots 

爲什麼它不斷增加的線?

回答

0

您每次都追加整個列表。

inputList1.append(input1) 
    inputList1.append(input2) 
    inputList1.append(input3) 
    inputListA.append(inputList1[:]) # ouchy 

你大概意思是這樣的:

inputListA.append(inputList1[-3:]) 

如果不是這樣,你的意思是在每遍清除inputListN。

編輯:

爲了擺脫括號:

format(' '.join([str(i) for i in currentList]), ...) 
+0

完美!現在打印時,我只需要擺脫列表中的括號。 – user3055517