如何从2D列表中生成指定元素的索引列表
Python生成二维列表指定元素的索引列表
你可以通过enumerate函数同时遍历索引和元素,筛选出符合条件的索引即可,以下是可直接运行的示例:
方法1:列表推导式(写法简洁)
生成列表格式索引
two_d_list = [[0, 1, 0, 0], [1, 1, 0, 0], [0, 0, 0, 1]] index_list = [[row_idx, col_idx] for row_idx, row in enumerate(two_d_list) for col_idx, val in enumerate(row) if val == 1]
运行后index_list的值为[[0, 1], [1, 0], [1, 1], [2, 3]],符合需求。
生成元组格式索引
仅需修改列表推导式中内部元素的包裹符号即可:
index_list = [(row_idx, col_idx) for row_idx, row in enumerate(two_d_list) for col_idx, val in enumerate(row) if val == 1]
运行后index_list的值为[(0, 1), (1, 0), (1, 1), (2, 3)]。
方法2:普通循环写法(可读性更高)
如果需要自定义更多逻辑,或者对列表推导式不熟悉,可以用常规嵌套循环实现:
two_d_list = [[0, 1, 0, 0], [1, 1, 0, 0], [0, 0, 0, 1]] target = 1 # 可修改为你要查找的任意目标元素 index_list = [] for row_idx, row in enumerate(two_d_list): for col_idx, val in enumerate(row): if val == target: # 存列表格式就传列表,存元组格式就传元组 index_list.append([row_idx, col_idx]) # 如需元组可替换为:index_list.append((row_idx, col_idx))
内容的提问来源于stack exchange,提问作者user17034852
相关产品推荐
相关产品推荐

