Python列表理解语法显示输出表达式为;“可选”吗;?

Python列表理解语法显示输出表达式为;“可选”吗;?,python,syntax,list-comprehension,Python,Syntax,List Comprehension,下面的这一页[见下文]有一个Python列表理解的语法描述,它说输出表达式是“可选的”。我在别处没有看到这个“可选”名称,没有它,列表理解似乎无法工作。例如 >>> llist = [1, 2, 3] # list comprehension with output expression works >>> listc = [num for num in llist] # list comprehension without output express

下面的这一页[见下文]有一个Python列表理解的语法描述,它说输出表达式是“可选的”。我在别处没有看到这个“可选”名称,没有它,列表理解似乎无法工作。例如

>>> llist = [1, 2, 3] 

# list comprehension with output expression works
>>> listc = [num for num in llist]

# list comprehension without output expression fails
>>> listc2 =[for num in llist]
   File "<stdin>", line 1
listc2 =[for num in llist]
               ^
   SyntaxError: invalid syntax

可能他们试图说你可以用一个简单的变量开始列表理解,但这仍然是一个表达式,对吗?

看起来文档有点不清楚。你确实需要左手边的东西。否则理解就没有多大意义。

看起来文档有点不清楚。你确实需要左手边的东西。否则理解就没有多大意义。

您在Python的非官方参考中链接的页面,正如您在上看到的,它已经有大约4年没有更新了。如果您想了解最新的、更重要的是正确的信息,请访问

下面是与列表理解及其语法相关的链接

列表由包含表达式的括号组成 后跟for子句,然后是零个或多个for或if子句


您链接的页面是Python的非官方参考,正如您在上看到的,它已经有4年没有更新了。如果您想了解最新的、更重要的是正确的信息,请访问

下面是与列表理解及其语法相关的链接

列表由包含表达式的括号组成 后跟for子句,然后是零个或多个for或if子句


您提到的页面非常清楚
表达式
。的确,在
[expression(variable)for variable in input_set[predicate][,…]]
中,
表达式
是可选的,您可以让
变量保持原样,它仍然可以工作。此外,您可以在那里留下您喜欢的任何东西,甚至不远程连接到
变量
,比如数字
42
,它仍然可以工作


可能原始页面作者的初衷是解释,如果您不想让循环变量保持原样,则无需对其执行任何操作。的确,在
[expression(variable)for variable in input_set[predicate][,…]]
中,
表达式
是可选的,您可以让
变量保持原样,它仍然可以工作。此外,您可以在那里留下您喜欢的任何东西,甚至不远程连接到
变量
,比如数字
42
,它仍然可以工作


可能原始页面作者的初衷是解释,如果您不想让循环变量保持原样,则不必对其进行任何处理。表达式引用变量上的某些函数,例如
num*2
。是的,这不是很清楚或很好的文档<代码>表达式(变量)
已经没有意义了,因为这就是函数调用语法。诚然,
函数(变量)
(变量)
都能工作,但这是在廉价出售:)这篇文档的头版显示了2015年的版权日期和“草稿”状态,所以我猜作者放弃了它……@KarlKnechtel:这让我想知道我是怎么发现它的。答案/问题是,出于某种原因,当一个人在谷歌上搜索python集合理解(我可能先尝试了“set…”)时,谷歌上的“1 hit”是同一站点对应的“set comprehension”页面,具有相同的“expression.Optional”第一个元素。所以,我决定我应该问一下这些理解有许多不同的语法,这一事实无助于这一点;我找不到一个明确的版本,甚至是一致的版本。你知道我应该去哪里吗?THXI如果您希望获得权威性和正确性,并且易于理解并不重要(尽管有一个教程部分),请从docs.python.org开始:)表达式引用变量上的某些函数,例如
num*2
。是的,这不是很清楚或很好的文档<代码>表达式(变量)
已经没有意义了,因为这就是函数调用语法。诚然,
函数(变量)
(变量)
都能工作,但这是在廉价出售:)这篇文档的头版显示了2015年的版权日期和“草稿”状态,所以我猜作者放弃了它……@KarlKnechtel:这让我想知道我是怎么发现它的。答案/问题是,出于某种原因,当一个人在谷歌上搜索python集合理解(我可能先尝试了“set…”)时,谷歌上的“1 hit”是同一站点对应的“set comprehension”页面,具有相同的“expression.Optional”第一个元素。所以,我决定我应该问一下这些理解有许多不同的语法,这一事实无助于这一点;我找不到一个明确的版本,甚至是一致的版本。你知道我应该去哪里吗?THXI如果您希望获得权威性和正确性,并且易于理解并不重要(尽管有教程部分),请从docs.python.org开始:)谢谢。我显然是Python新手,所以我想听听别人(或更多)的意见。谢谢。我显然是Python新手,所以我想听听别人(或更多)的意见。
[expression(variable) for variable in input_set [predicate][, …]]

expression
Optional. An output expression producing members of the new set from members of the input set that satisfy the predicate expression.

variable
Required. Variable representing members of an input set.

input_set
Required. Represents the input set.

predicate
Optional. Expression acting as a filter on members of the input set.

[, …]]
Optional. Another nested comprehension.