不使用pandas检查嵌套列表(矩阵)各列是否存在指定元素
实现方案
核心思路
遍历矩阵的每一列,逐列检查是否包含目标元素:
- 先获取矩阵总列数
- 对每一列,遍历所有行的对应位置元素,判断是否存在目标值
- 只要有一列不存在目标值,直接返回校验失败;所有列都存在则返回校验成功
实现代码
def check_target_in_all_cols(matrix, target): # 边界校验:判断矩阵是否为空 if not matrix: return False col_total = len(matrix[0]) # 遍历每一列 for col_idx in range(col_total): col_has_target = False # 遍历当前列的所有行元素 for row in matrix: # 边界校验:判断当前行长度是否符合要求,避免索引越界 if col_idx >= len(row): return False if row[col_idx] == target: col_has_target = True break # 当前列未找到目标值,直接返回失败 if not col_has_target: return False # 所有列都找到目标值,返回成功 return True
测试示例
针对你提供的矩阵测试:
matrix = [[2, 3, 1, 2], [1, 2, 3, 2], [3, 3, 1, 2], [2, 2, 3, 3]] # 校验元素1是否在每一列都存在 print(check_target_in_all_cols(matrix, 1))
输出结果:False
原因:索引为1的第二列所有元素为3、2、3、2,不存在元素1,因此校验不通过。
内容的提问来源于stack exchange,提问作者Zhang Ziyang
相关产品推荐
相关产品推荐

