title: checking diagonals in 2d list (Python)
body: <p>The initial problem: for a given 3x3 tic tac toe board check if one of the players has won.</p>
  
  <p>The simplest solution I have come up so far is rotating the matrix and summing up each row:</p>
  
  <pre><code>board
  [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
  
  pr(board)
  0 1 2
  3 4 5
  6 7 8
  
  pr(zip(*board))
  0 3 6
  1 4 7
  2 5 8
  </code></pre>
  
  <p>0..9 numbers above are just for showing positions on the board, normally they would be filled with 1 for player 1 and -1 for player 2 and 0 for unfilled position. Go row by row and if it sums up to 3 or -3 this is the winning block.</p>
  
  <p>However, diagonals are not checked. Is there some way to extract diagonals from such matrix in elegant + highly performant way? I don't mean using trivial indexes "manually" (0, 1, 2), but rather get diagonal of n x n matrix.</p>
  
  <p>P.S. pr is just a helper function for printing 2d list:</p>
  
  <pre><code>def pr(x):
      for row in x:
          print ' '.join(map(str, row))
  </code></pre>