如何查找二维数组每行独有的、不存在于其余所有行的元素
二维数组单行独有元素提取方案
实现逻辑:
- 循环遍历二维数组的每一行,利用切片操作排除当前行,得到剩余所有行
- 将剩余行的所有元素合并存入一个公共集合,存储所有其他行出现过的元素
- 用当前行的元素和公共集合做差集运算,得到仅当前行存在的独有元素
示例代码如下:
list2d = [ [5,9], [1,5], [1,5,7,8] ] for idx, current_row in enumerate(list2d): # 合并除当前行外的所有元素到公共集合 other_element_set = set() for row in list2d[:idx] + list2d[idx+1:]: other_element_set.update(row) # 计算独有元素,如果不需要保留原顺序可以直接用集合差集 unique_elements = list(set(current_row) - other_element_set) # 如果需要保留元素在当前行的出现顺序,替换成下面的写法 # unique_elements = [item for item in current_row if item not in other_element_set] print(f">处理第{idx}行时输出{unique_elements}")
运行后输出结果和预期完全一致:
>处理第0行时输出[9] >处理第1行时输出[] >处理第2行时输出[7, 8]
该方案完全使用Python原生语法,无需引入任何第三方依赖,可适配任意行数的二维数组场景。
内容的提问来源于stack exchange,提问作者Wu Bruce
相关产品推荐
相关产品推荐

