【发布时间】:2020-02-21 15:19:36
【问题描述】:
为什么是这个代码
sum(x for x in range(10))
有效吗?为什么不需要将x for x in range(10) 括在方括号中?
【问题讨论】:
-
严格来说,这里都不需要,
sum(range(10)) -
@khelwood,所以
sum(x for x in range(10))被隐式转换为sum(<generator expression>)?我做对了吗?那么这种行为有多可靠呢? -
完全可靠。这是语言的一部分。如果你写
(<x> for <y> in <z>),你就写了一个生成器表达式。 -
@khelwood,你可能是对的,但我提出了同样的担忧,因为我在下面回答了它。当然
sum(X)表示X赋予sum函数。如果是这种情况,X是x for x in range(10)而不是生成器(x for x in range(10))。
标签: python