列表生成式的 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吗?或者还是别的执行顺序。百度了一下没找到结果。
3 回答
已采纳
小猫过河
TA贡献26条经验 获得超15个赞
嗯,对.
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,你可以这样理解.
添加回答
举报
0/150
提交
取消