2013-04-01 2 views
1

У меня есть несколько списков в пределах списка, который формирует игру крестики-нолики:Диагональ вложенного списка в Python 3

list = [ 
     ['X', 'O', 'O'], 
     ['O', 'X', 'O'], 
     [' ', 'X', ' '] 
     ] 

Мне нужно написать функцию, которая возвращает диагоналей игры сверху слева внизу справа, а затем сверху справа внизу слева, так что результат будет:

diags = (['X', 'X', ' '],['O', 'X', ' ']) 

Я пробовал различные комбинации вложенного для петель, кажется, не может получить мою голову вокруг него, хотя.

+0

См. Этот ответ, который, я думаю, охватывает ваш вопрос: http://stackoverflow.com/a/15100815/399704 –

+0

Возможный дубликат [проверка диагонали в списке 2d (Python)] (http://stackoverflow.com/ Вопросы/15100735/check-diagonals-in-2d-list-python) – jamylak

ответ

2
nw_to_se = [your_list[i][i] for i in range(3)] 
ne_to_sw = [your_list[i][2-i] for i in range(3)] 
diags = (nw_to_se, ne_to_sw) 

Вместо [2-i] вы можете также использовать [-i-1], который масштабируется до любого размера квадрата.

+0

Мне пришлось изменить ne_to_sw = [your_list [2-i] [i] для i в диапазоне (3)] до ne_to_sw = [your_list [i] [ 2-i] для i в диапазоне (3)], чтобы он находился в правильном порядке. Большое вам спасибо! – user2201797

Смежные вопросы