如何用Python3嵌套列表推导式实现带固定输出的双层循环逻辑
实现代码
你可以调整列表推导式的结构,把外层循环每次末尾的print("hi")加入每个外层迭代的操作序列中,写法如下:
[op for x in range(2) for op in [print((x,y)) for y in range(2)] + [print("hi")]]
逻辑说明
- 对每一个外层迭代变量
x,先执行内层循环的所有print((x,y))操作 - 内层循环执行结束后,追加执行
print("hi")的操作 - 两层遍历依次执行所有操作,即可得到你需要的输出结果
注意:列表推导式的设计初衷是用来生成新列表,而不是执行打印这类带副作用的操作。上述写法仅为满足你用列表推导式实现的需求,实际开发中更推荐使用原生的双层for循环写法,可读性更强,也不会生成无意义的全None列表(print函数返回值为None,上述推导式最终会生成一个没用的None元素列表,额外占用内存)。
内容的提问来源于stack exchange,提问作者Muniko
相关产品推荐
相关产品推荐

