如果我有这个代码片段(为一个集合中的偶数生成平方)
是先完成投影,然后过滤,还是在范围(100)内对x的每次迭代运行过滤器?
output_list = [x*x for x in range(100) if x % 2 == 0]
print("Output List using for loop:", output_list)有没有办法找出投影和过滤之间的执行顺序?
发布于 2019-08-15 06:45:57
对于迭代器(range(100))中的每个元素,首先计算过滤器表达式,只有当它的计算结果为true时,才计算投影表达式。
您可以使用以下代码片段验证这一点:
[print("A", x)
for x in range(10)
if print("B", x) or x % 2 == 0]https://stackoverflow.com/questions/57502938
复制相似问题