2017-05-31 42 views
0

我測試了下面的代碼與一些數據,該列表在for循環內工作正常。但在for循環之後,該列表不包含任何內容。怎麼來的?我需要列表在程序內部進一步使用,所以我不能用鍵盤手動中斷它。Python,我試圖讀取數據使用標準輸入和隱式列表,但它似乎數據丟失外循環

l = [] 


for line in sys.stdin: 
    if line == '': 
     l.append([]) 
    else: 
     new_list = [int(i) for i in line.split()] 
     l.append(new_list) 
     print(l) # list works 

print(l) # list fails 
+0

您是否嘗試過使用input()或python2.x raw_input來獲取輸入? –

+0

'for'和最後的'print'之間有一個* blackhole *?你沒有顯示一些代碼? –

+0

你的代碼適用於我(即使它永遠不會退出循環,除非我按Ctrl + C並退出Python,此時我得到你的列表輸出) –

回答

0

爲了走出for循環,你必須打破你的代碼,在那裏我猜「l」信息丟失了!

您可以使用一個字符移出循環(中斷)或使用一段時間條件。 Ciao,祝你有美好的一天!

要得到建議的輸入,我會使用python2中的輸入或raw_input!

2

我不認爲你會離開for循環來執行第二個print(l)語句。

如果按ctrl-d作爲文件鍵盤中斷的結束,則將離開for循環並按預期方式運行第二個打印語句。