如何从两个列表生成有序的元素存在性对比列表?
嘿,这个需求很容易实现,我给你几个常用编程语言的方案,按需选用就行:
Python 实现
最简洁的方式是用列表推导式,配合集合来提升查找效率(集合的成员检查是O(1),比直接在列表里找快得多,尤其是数据量大的时候):
# 你的原始列表 main_list = ["00", "11", "22", "33", "44", "55"] check_list = ["22", "55"] # 把需要检查的列表转成集合 check_set = set(check_list) # 生成结果列表 result = [1 if item in check_set else 0 for item in main_list] print(result) # 输出: [0, 0, 1, 0, 0, 1]
JavaScript 实现
同样用Set来优化查找,结合数组的map方法:
// 原始列表 const mainList = ["00", "11", "22", "33", "44", "55"]; const checkList = ["22", "55"]; const checkSet = new Set(checkList); const result = mainList.map(item => checkSet.has(item) ? 1 : 0); console.log(result); // 输出: [0, 0, 1, 0, 0, 1]
小提示
如果你的列表里是数字(比如[0,11,22,...]而不是字符串),代码逻辑完全一样,只需要把列表里的元素改成数字就行,不需要额外调整判断逻辑。
内容的提问来源于stack exchange,提问作者Timofey Goritsky
相关产品推荐
相关产品推荐

