2016-12-24 66 views
-4

我認爲這是一個非常簡單的問題,但我得到了錯誤的答案。我在做一個在線課程中的python編程練習,並試圖將此代碼轉換爲循環。將列表理解轉換爲while循環

x = [y for i in range(300)] 

我的回答:

counter=0 
while counter<300: 
    x=y 
    counter+=1 

的是這兩者之間的區別?
如何將第一個片段轉換爲第二個片段?

+0

X需要進行列表,並在「翻譯」,它不是一個列表(而且,如果你正在處理列表,'='不你想要什麼,但是'append'),並且你簡單地用y覆蓋x,但是你從來沒有向任何東西聲明y,所以這在語法上也是不正確的,這是你正在處理的確切代碼嗎?理解也是不正確的, – idjaw

+0

'x = list(range(300))'更好,但這已經錯了:'x = [y對於範圍內的我(300)]' –

+0

y被定義。練習在自己的模擬器中有價值我認爲它只是給了我第一行,並希望我將它轉換成循環 – Prethia

回答

2

列表理解的輸出是一個list,並且您尚未創建代碼中的任何名單,因此,當我們閱讀列表理解出外x = [y for i in range(300)]意味着x是存儲的價值300元的列表變量爲y。這可以寫成while環路:

x = [] 
counter = 0 

y = 10 # Some value defined in your code. 
while counter < 300: 
    x.append(y) 
    counter += 1 
+0

我用一個示例數據集對您的代碼進行了嘗試,結果相同,但系統不接受答案。你認爲這是因爲計算價值時兩者之間的差異?或者是第一個代碼產生了一些不必要的東西? – Prethia