Python中的条件过滤语句执行顺序?

列表生成式的 for 循环后面还可以加上 if 判断。例如:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
如果我们只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。
以上是课程内容。
我想问>>> [x * x for x in range(1, 11) if x % 2 == 0]中 执行顺序是先for循环把值给x,然后if判断是否为偶数,再执行x*x吗?或者还是别的执行顺序。百度了一下没找到结果。

 

秋水丶
浏览 2333回答 3
3回答

小猫过河

嗯,对.def func():     l = []     for x in range(1,11):         if x % 2 == 0:            l.append(x*x)     return l      print func() output:[4, 16, 36, 64, 100]这里是等价的,过程差不多,先for再if,你可以这样理解.

june_fu888

你的理解是对的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python