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

如何实现列表列表与单列表匹配,替换不匹配元素为'X'

问题

给定两个列表:

a = [1,2,3,4,5]
b = [[3,4],[4,5],[6,7]]

需要将列表b中的每个子列表与列表a的元素逐一对比,生成一个与b长度一致的嵌套列表——对应位置元素匹配则保留原元素,不匹配则替换为'X'。预期输出如下:

c = [['X','X',3,4,'X'],['X','X','X',4,5],['X','X','X','X','X']]

此前尝试过Stack Overflow上的单列表对比方案,但无法满足嵌套列表与单列表的对比需求。

解决方案

可以通过两层列表推导式实现需求,代码如下:

a = [1,2,3,4,5]
b = [[3,4],[4,5],[6,7]]

# 生成目标列表
c = [[num if num in sub_b else 'X' for num in a] for sub_b in b]
print(c)

逻辑说明

  • 外层列表推导式遍历b中的每一个子列表sub_b;
  • 内层列表推导式遍历a中的每一个元素,判断该元素是否存在于当前子列表sub_b中:
    • 存在则保留原元素;
    • 不存在则替换为'X';
  • 最终生成的嵌套列表完全符合预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:31:02