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

如何判断列表元素是否匹配矩阵单元格且严格遵守空格匹配规则

实现方法

你的匹配规则本质是要求两个条件同时满足:

  1. 单元格内容按空格分割后,存在和list2中元素完全一致的分词
  2. 单元格内容本身不能和list2中的元素完全相等(比如纯'hi'不满足要求)

完整代码实现

import numpy as np

# 输入数据
list2 = ['hi', 'ma', 'ja']
matrix2 = np.array([['high','h ight','hi ght','h i g ht'],
       ['man','ma n','ma th','mat h'],
       ['ja cket','j a ck et','jack et','ja m'],
       ['ma nkind','jack',' hi ','hi']])

# 定义匹配规则函数
def match_cell(cell, keywords):
    # 排除完全等于关键词的情况
    if cell in keywords:
        return False
    # 按空格拆分后判断是否有关键词
    return any(kw in cell.split() for kw in keywords)

# 向量化函数适配numpy矩阵操作
vec_match = np.vectorize(lambda x: match_cell(x, list2))

# 生成结果
output = vec_match(matrix2)
print(output)

输出结果

运行上述代码会得到你期望的输出:

[[False False  True False]
 [False  True  True False]
 [ True False False  True]
 [ True False  True False]]

代码说明

  • 用split()方法按空格拆分单元格内容,自动忽略前后空格、连续空格的影响,刚好匹配你的分词判断需求
  • 用np.vectorize包装自定义判断函数,实现numpy矩阵的批量处理,不用手动遍历每个元素
  • 如果不需要保留numpy格式,也可以直接用嵌套列表推导实现:
output = [[match_cell(cell, list2) for cell in row] for row in matrix2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:18:04