2024-04-18 22:30:00 发布
网友
我看到了这样的东西:
set(x for x in [1, 2, 3])
我知道x for x in [1, 2, 3]是一种理解,但我找不到有效的语法,因为x for x in [1, 2, 3]本身是无效的。你知道吗
x for x in [1, 2, 3]
这是一个生成器表达式。它们通常由paren包围,但如果表达式是函数调用的唯一参数,则可以忽略paren:
>>> generator = (x for x in [1, 2, 3]) >>> generator.next() 1 >>> set(generator) set([2, 3])
生成器对象可以迭代,它们逐个生成值。与在这里使用列表理解相比,优点是不需要创建中间列表对象(如果有一百万个元素而不是三个元素,这就更重要了)。你知道吗
文档:https://docs.python.org/2/reference/expressions.html#generator-expressions
从python3 reference
call ::= primary "(" [argument_list [","] | comprehension] ")" comprehension ::= expression comp_for
支票:
set是primary,x是expression,for x in [1, 2, 3]是comp_for
set
primary
x
expression
for x in [1, 2, 3]
comp_for
它是在理解的基础上创建一个集合。示例:
a = set(x for x in [1, 2, 3]) print(a)
结果将是一组:
{1, 2, 3}
在上面的例子中,逻辑可以简化为:
a = set([1, 2, 3])
你根本不需要理解
这是一个生成器表达式。它们通常由paren包围,但如果表达式是函数调用的唯一参数,则可以忽略paren:
生成器对象可以迭代,它们逐个生成值。与在这里使用列表理解相比,优点是不需要创建中间列表对象(如果有一百万个元素而不是三个元素,这就更重要了)。你知道吗
文档:https://docs.python.org/2/reference/expressions.html#generator-expressions
从python3 reference
支票:
set
是primary
,x
是expression
,for x in [1, 2, 3]
是comp_for
它是在理解的基础上创建一个集合。示例:
结果将是一组:
在上面的例子中,逻辑可以简化为:
你根本不需要理解
相关问题 更多 >
编程相关推荐