在Python中查找矩阵中出现的所有元素

在Python中查找矩阵中出现的所有元素,python,matrix,Python,Matrix,我有一个列表,我想找到所有事件的记录。我设法做到了这一点,但我想知道是否有更好的方法,例如使用numpywhere 这就是我所做的: my_list = [[1,2,3,1, 3], [1,3,2]] target_value = 3 locations = [] for k in range(len(my_list)): indices = [i for i, x in enumerate(my_list[k]) if x == target_value] locations

我有一个列表,我想找到所有事件的记录。我设法做到了这一点,但我想知道是否有更好的方法,例如使用numpywhere

这就是我所做的:

my_list = [[1,2,3,1, 3], [1,3,2]]

target_value = 3
locations = []
for k in range(len(my_list)):
    indices = [i for i, x in enumerate(my_list[k]) if x == target_value]
    locations.append((k, indices))
locations2 = []
for row in locations:
    for i in row[1]:
        locations2.append((row[0], i))
print locations2 # prints [(0, 2), (0, 4), (1, 1)]

虽然可以在numpy中实现这一点,但numpy对不规则阵列并不太满意。我认为纯python理解版看起来不错:

>>> my_list = [[1,2,3,1, 3], [1,3,2]]
>>> [(i,j) for i,x in enumerate(my_list) for j,y in enumerate(x) if y == 3]
[(0, 2), (0, 4), (1, 1)]

噢!噢!一个令人尴尬的平行问题!!!(是的,三声(!)惊呼!)