Python列表推导式能否一次添加两个元素实现目标输出?
单行列表推导式实现方案
你原本的单层列表推导式会为每个x生成一组嵌套的子列表,最终得到三维嵌套结构,和目标的二维列表输出不符。
可以直接使用双层循环的列表推导式实现需求,无需提前定义空列表:
mylist = [item for x in range(1, 4) for item in [[(x,x)], [(x*2,x*2)]]]
原理说明
该写法等价于嵌套循环逻辑:
- 外层遍历
range(1,4)的每个x值 - 内层遍历每个x对应的两个子元素
[(x,x)]和[(x*2,x*2)] - 依次将子元素追加到最终生成的列表中,输出结果和extend方案完全一致
如果实际业务中每个x对应的生成逻辑更复杂,仅需替换内层循环里的[[(x,x)], [(x*2,x*2)]]部分为对应业务逻辑即可,结构通用。
内容的提问来源于stack exchange,提问作者lev1248
相关产品推荐
相关产品推荐

