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

如何通过对比两个列表的元素值生成由'0'、'1'组成的新列表

实现方案

核心思路

先把list1转为集合提升查询效率(集合的成员查询时间复杂度为O(1),远优于列表的O(n)),再遍历list2的每一个元素,根据元素是否存在于集合中返回对应字符串即可。

代码实现

# 输入示例
list1 = ['19', '17']
list2 = ['18', '19', '17', '20', '23']

# 转换为集合加速查询
set1 = set(list1)
# 列表推导式生成结果
list3 = ['1' if item in set1 else '0' for item in list2]

print(list3) # 输出:['0', '1', '1', '0', '0']

补充说明

哪怕list1和list2的规模很大,这个写法的时间复杂度也只有O(len(list1)+len(list2)),性能表现很好,完全符合给定的规则要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:12:01