Python Forum
Finding an element in a 1d list in a 2d array - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Finding an element in a 1d list in a 2d array (/thread-27930.html)



Finding an element in a 1d list in a 2d array - lionrocker221 - Jun-27-2020

Hello,
In this code, neighbors is a list that is generated from m, from the point of view of "1" in the matrix. I'm trying to take a random element from neighbors and find the index of that element in the 2d array m.

import numpy as np
import random

m = [
    [0, 0 ,0 ,0],
    [0 ,2 ,0 ,0],
    [0 ,1, 0 ,0],
    [0 ,0 ,0, 0]
    ]

x = 1 # x coordinate of 1 in the matrix
y = 1 # y coordinate of 1 in the matrix
neighbors = [] # empty list regarding the neighbors of 1 which will be generated with the loop

for x_elem in (x-1, x, x+1):
    for y_elem in (y-1, y, y+1):
        element = m[y_elem][x_elem] # getting the element in m

        neighbors.append(element) # taking that element and appending it to the neighbors list
        if map[y_elem][x_elem] == map[y][x]: # if the element is the same as itself (aka 1), remove it from neighbors
            neighbors.remove(map[y_elem][x_elem])

c = random.choice(neighbors) # take a random element fo the neighbors
.
.
.
#how to get c's index in the 2d array m
Instead of trying to get the element from the index in m, how can I reverse this process and find the index from the element? Neighbors, in this case, would be [0, 0, 0, 2, 0, 0, 0, 0], elements that stem from the matrix m].