Индексы списка Python - PullRequest
       1

Индексы списка Python

0 голосов
/ 28 марта 2012

У меня есть двойной список, и мне интересно, как лучше всего получить индексы нулей в массиве

board =[[1,2,0],
    [2,1,2],
    [1,1,0]]

for boxes in board:
    if 0 in boxes:
        print boxes

нравится, но вместо этого я хочу получить возврат [0,2] [2,2]

Ответы [ 2 ]

4 голосов
/ 28 марта 2012

Ваш вопрос очень расплывчатый (как насчет нескольких нулей в одном из внутренних списков), не стесняйтесь комментировать, если вы ищете что-то еще:

zeroes = []
for x, box in enumerate(board):
    if 0 in box:
        zeroes.append((x, box.index(0)))
print zeroes

С вашими заданными списками, это печатает

[(0, 2), (2, 2)]

В более короткой и более питонической версии использовалось бы следующее понимание списка:

zeroes = [(x, box.index(0)) for x, box in enumerate(board) if 0 in box]
3 голосов
/ 28 марта 2012

Вы можете использовать понимание списка:

[(i, j) for i in range(3) for j in range(3) if board[i][j] == 0]

Это будет включать несколько нулей в строке, если они присутствуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...