2015-06-24 3 views
-1

У меня есть следующий список: [["0", "_", "_"], ["_", "_", "_"], ["_", "_", "_"]].Поиск многосимвольного списка в python

Как я могу найти индекс элемента, который является «_». Я хочу это следующим образом: [2, 0], [0, 2] ...

Вот что мне удалось сделать, но это не работает: None: "self.matrix" не выше матрица ,

def getAvailableMoves(self): 
    availableMoves = [] 

    for list_ in self.matrix: 
     for item in list_: 
      if item == "_": 
       availableMoves.append([self.matrix.index(list_), self.matrix[self.matrix.index(list_)].index(item)]) 

    return availableMoves 
+0

Я не понимаю, ожидаемый результат ?! Прямо сейчас «_» - [1,2], [0,1,2], [0,1,2]. – marcus

+0

Я пытаюсь реализовать минимаксный алгоритм для игры Tic Tac Toe, поэтому вывод - это строка и столбец доступного движения. –

+2

Это кажется достаточно близким: http://stackoverflow.com/questions/18504898/how-to-find-all-indices-above-a-specific-value-in-a-python-multidimensional-list – Roope

ответ

0

Вы можете использовать enumerate в ваших петель, чтобы получить индекс элемента, вы на как

for list_ind, list_ in enumerate(self.matrix): 
    for item_ind, item in enumerate(list_): 
     if(item=='_'): 
      availableMoves.append((list_ind,item_ind)) 
Смежные вопросы