2015-10-15 20 views
0

我剛纔正在嘗試編碼比賽。Python內聯語句比普通循環更慢

我被給出N行輸入是整數,所以採取這些輸入,我用下面的代碼。

arr = [int(input()) for i in xrange(N)] 

# where N is a given number of Inputs 

由於這段代碼,我得到了TLE(TIME LIMIT EXCEEDED)錯誤。

但是,當我將輸入代碼更改爲以下內容時,我的代碼在沒有TLE的情況下被接受。

arr = [] 
for i in xrange(N): 
    arr.append(int(raw_input())) 

#where N is the given number of inputs 

可以請一些解釋,爲什麼有差異,執行時間,不過,我的理解,這兩個代碼的形式不一定做同樣的任務,並以同樣的方式。

+2

[原始輸入與輸入](http://stackoverflow.com/questions/3800846/differences-between-input-and-raw-input) – sam

回答

5

這兩個代碼片段是不同的。一個使用raw_input(),另一個使用input()。預計raw_input()會比input()更快,因爲它不會將輸入字符串解析並計算爲Python表達式。

+0

我的不好!應該已經注意到了!謝謝 ! –