Python:对嵌套列表的理解进行过滤

例如,我有以下列表列表:

 matrix = [['.','W','.'],['.',['W','.','.']]

我想要一个包含所有行和列索引的列表。

this answer中,他们展示了如何针对单个列表进行操作。

但是我想对嵌套列表执行此操作。有更多这样的示例,例如thisthis

所以这对我有用:

l = [[(i,j) for j,el in enumerate(row) if el == 'W'] for i,row in enumerate(matrix)]
flat_list = [item for sublist in l for item in sublist]

>> [(0,1),(1,(2,0)]

但是我将如何使用一个列表理解语句来做到这一点?

tanghui22222 回答:Python:对嵌套列表的理解进行过滤

除了在一行中执行之外:

[(i,j) for i,row in enumerate(matrix) for j,el in enumerate(row) if el == 'W']
#[(0,1),(1,(2,0)]

您也可以使用numpy

import numpy as np
list(zip(*np.where(np.array(matrix)=='W')))
#[(0,0)]
本文链接:https://www.f2er.com/3117141.html

大家都在问