Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么python接受表达式[代码]?它的起源是什么?_Python - Fatal编程技术网

为什么python接受表达式[代码]?它的起源是什么?

为什么python接受表达式[代码]?它的起源是什么?,python,Python,我写了这个表达式 [0 for j in range(4)] python接受它作为列表的定义,但当我编写这个表达式时: 0 for j in range(4) 这会引起一个错误 它的机制是什么?它起源于哪种语言?它来自函数式编程,即LISP吗?Java或C中的等价物是什么 编辑:与回答的问题不同的是,马的左半部并没有,只有右半部 [code] 我还对列表理解的起源和其他编程语言中的等价物感兴趣。[0代表范围(4)中的j)]是一个例子。这是非常有效的Python语法 另一个表达式根本不是表

我写了这个表达式

[0 for j in range(4)]
python接受它作为列表的定义,但当我编写这个表达式时:

0 for j in range(4)
这会引起一个错误

它的机制是什么?它起源于哪种语言?它来自函数式编程,即LISP吗?Java或C中的等价物是什么

编辑:与回答的问题不同的是,马的左半部并没有,只有右半部

[code]
我还对列表理解的起源和其他编程语言中的等价物感兴趣。

[0代表范围(4)中的j)]
是一个例子。这是非常有效的Python语法


另一个表达式根本不是表达式。

这个想法来自Haskell。请注意,您可以创建一个带括号的生成器表达式:
(0表示范围(4)中的j))
。定义语法的PEP:@AshwiniChaudhary:我不确定Python开发人员是否直接从Haskell处获得它。NPL中已经存在这个概念和名称,请参见@MartijnPieters,尽管很难说Greg Ewing在添加相关补丁时想到了Haskell。