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

如何不使用for循环为列表生成判断元素是否在另一集合的掩码

方案1:纯Python标准库实现(无需额外依赖)

先把列表a转为集合,利用集合O(1)时间复杂度的成员查询特性提升效率,再通过map高阶函数完成匹配,全程不需要显式编写for循环:

a = ["a","b","c"]
b = ["a","c","d","e"]

set_a = set(a)
result = list(map(lambda x: x in set_a, b))
print(result) # 输出:[True, True, False, False]

注:Python3中map返回的是迭代器,需要用list()转成列表格式才能得到目标结果。

方案2:numpy实现(适合处理大规模数据)

如果允许使用第三方库,numpy内置的isin方法可以直接生成布尔掩码,代码更简洁,处理长列表时性能优势更明显:

import numpy as np

a = ["a","b","c"]
b = ["a","c","d","e"]

result = np.isin(b, a).tolist()
print(result) # 输出:[True, True, False, False]

内容的提问来源于stack exchange,提问作者Juan Paulo Reguyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:54:03