2012-10-17 47 views
0

定界符我有下面的說明書中的問題:輸入與在python

輸入:

第一行包含一個整數N,在給定的sequnce元件的數量。 然後遵循N個整數A1,A2 .... An,Ai是給定序列的第i個元素。這些數字可以是空格分隔的或換行符分隔的。

如何處理像這樣的輸入? 我嘗試以下,但它僅適用於空格分隔新行使用elements.When分隔的元素平地機拋出「超時」

import sys 
counter=0 
A=[] 
for line in sys.stdin: 
    if counter!=0: 
     A+=[int(Ai) for Ai in line.split()] 
    else: 
     N=int(line) 
     counter+=1 
+0

'line.split()'也適用於像分隔符','等等。 –

+0

是的,但在每一行上我只有空格或只有一個數字。沒有其他分隔符 – Controller

+0

據我所知,你的代碼工作正常(只要第一行只包含1個數字),只要數據被放到'sys.stdin'中(並且'sys.stdin'被正確終止)......當然,你會比N個元素多得多... – mgilson

回答

1

假設你從文件中讀取(sys.stdin也是一個文件):

f = open('path/to/file') 
N = int(f.readline().strip()) 
A = [] 
while len(A) < N: 
    A.extend(int(i) for i in f.readline().strip().split()) 

希望這有助於

+0

我正在讀stdin.what應該我寫在公開的內部? – Controller

+0

你不需要打開'sys.stdin'。它已經是一個打開的文件 – inspectorG4dget

+0

所以我寫: N = int(sys.stdin.readline()。strip()) A = [] while len(A) Controller