2015-10-06 41 views
-2

我寫這個表達式爲什麼表達式[code]被python接受?那是什麼來源?

[0 for j in range(4)] 

和Python接受它作爲定義列表,但是當我寫這個表達式:

0 for j in range(4) 

它將引發錯誤。

什麼是它的機制和它來自哪種語言?它來自函數式編程,即。 LISP? Java或C中的等價物是什麼?

編輯:從回答問題不同的是,沒有騎術的左側部分,恰到好處部分

[code] 

我也很感興趣,列表理解和等價物在其他編程語言的起源。

+2

這個想法來自Haskell。 –

+2

請注意,您可以使用圓括號創建一個*生成器表達式*:'(範圍(4)中的j爲0)'。 – jonrsharpe

+0

定義語法的PEP:https://www.python.org/dev/peps/pep-0202/ –

回答

2

[0 for j in range(4)]list comprehension。這是完全有效的Python語法。

其他表達式根本不是表達式。

相關問題