gpt4 book ai didi

python - Python 3 中 max([a for a in [1,2]]) 和 max(a for a in [1,2]) 的区别

转载 作者:行者123 更新时间:2023-12-04 00:53:37 24 4
gpt4 key购买 nike

我发现它们都会输出预期的结果2

  • max([a for a in [1,2]])max() + list comprehension,一个简单的。

  • max(a for a in [1,2])max() + ?。为什么它有效?我们如何命名结构 a for a in [1,2]

生成器的形式为(a for a in [1,2])。我怀疑 (a for a in [1,2]) 里面的 max(a for a in [1,2]) 是一个生成器。但是,如果是这样的话,为什么一对 () 可以被忽略呢?从技术上讲,它应该是 max((a for a in [1,2]))

谢谢。

最佳答案

那实际上是一个生成器表达式。生成器表达式可以使用参数列表中的 ();前提是它们是传递给函数的唯一参数。如果有更多参数,它们需要自己的一对括号。

您可以通过快速测试自己验证这一点:

def func(arg):
print(type(arg))

func(n for n in range(10)) # Prints <class 'generator'>

来自 PEP 289 :

The syntax requires that a generator expression always needs to be directly inside a set of parentheses and cannot have a comma on either side. . . . [I]f a function call has a single positional argument, it can be a generator expression without extra parentheses, but in all other cases you have to parenthesize it.

关于python - Python 3 中 max([a for a in [1,2]]) 和 max(a for a in [1,2]) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64428300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com