fork(2) download
  1. #122
  2. import numpy
  3. def f(m):w=len(m);print sum([list(m[::-1,:].diagonal(i)[::(i+w+1)%2*-2+1])for i in range(-w,w+len(m[0]))],[])
  4.  
  5. #122
  6. #import numpy
  7. #lambda m:sum([list(m[::-1,:].diagonal(i)[::(i+len(m)+1)%2*-2+1])for i in range(-len(m),len(m)+len(m[0]))],[])
  8.  
  9. #f(numpy.arange(1,5).reshape(2,2))
  10. #f(numpy.arange(1,13).reshape(3,4))
  11. #f(numpy.array([[1,2,3,4]]))
  12.  
  13. f(numpy.array([[1]])) #=> [1]
  14. f(numpy.array([[1, 2], [3, 1]])) #=> [1 2 3 1]
  15. f(numpy.array([[1, 2, 3, 1]])) #=> [1 2 3 1]
  16. f(numpy.array([[1, 2, 3], [5, 6, 4], [9, 7, 8], [1, 2, 3]])) #=> [1 2 5 9 6 3 4 7 1 2 8 3]
  17. f(numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 1, 2, 3]])) #=> [1 2 5 9 6 3 4 7 1 2 8 3]
  18. f(numpy.array([[1, 2, 6, 3, 1, 2], [5, 9, 4, 7, 8, 3]])) #=> [1 2 5 9 6 3 4 7 1 2 8 3]
  19. f(numpy.array([[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]])) #=> [1 2 5 9 6 3 4 7 1 2 8 3]
  20. f(numpy.array([[1], [2], [5], [9], [6], [3], [4], [7], [1], [2], [8], [3]]))#=> [1 2 5 9 6 3 4 7 1 2 8 3]
  21.  
Success #stdin #stdout 0.12s 25336KB
stdin
Standard input is empty
stdout
[1]
[1, 2, 3, 1]
[1, 2, 3, 1]
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]