奇怪的Python for语法,怎么回事,叫什么?
print max(3 for i in range(4))
#output is 3
使用Python 2.6
这个3让我有点困惑,下面是我尝试解释发生了什么。
for i in range(4) 是一个循环,它会循环4次,每次循环开始时,i的值从0增加到3。[我不知道这里的3是什么意思...] max() 函数会返回传给它的最大值,然后结果会显示在屏幕上。
4 个回答
7
可以把它改写成:
nums = []
for i in range(4):
nums.append(3)
print max(nums) # 3! Hurrah!
我希望这样能让它的无意义更加明显。
11
这段代码的结果是:
print max([3,3,3,3])
... 这其实就是在说 print 3
。
expr for x in xs
是一种生成器表达式。通常情况下,你会在 expr
中使用 x
。举个例子:
[2*i for i in range(4)] #=> [0, 2, 4, 6]
14
3 for i in range(4)
是一个生成器,它会连续输出数字3四次。而 max
是一个函数,它可以接收一系列的数字,然后找出其中最大的那个数字。在这里,最大的数字显然就是3。