You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两个独立列表的列表推导式,简化生成带布尔标记元组的Python代码

可以合并,有以下几种简洁的实现方式:


方法1:单列表推导式(无需额外导入依赖)

直接在列表推导式中先遍历布尔值和对应列表的配对,再遍历列表内的元素,一行即可完成:

result = [(item, flag) for flag, lst in [(True, a), (False, b)] for item in lst]

如果只是想把原写法压缩成一行,也可以直接合并列表相加的逻辑,可读性也很高:

result = [(item, True) for item in a] + [(item, False) for item in b]

方法2:借助itertools.chain(适合处理超长列表,更省内存)

如果两个列表的规模很大,用生成器表达式配合chain可以避免生成中间列表,内存效率更高:

from itertools import chain
result = list(chain(((item, True) for item in a), ((item, False) for item in b)))

补充说明:你原来的拆分写法可读性其实很不错,除非对代码行数有明确要求,否则拆分的写法反而更容易后续维护修改。

内容的提问来源于stack exchange,提问作者NineWasps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:45:04