printing a two dimensional array in python

printing a two dimensional array in python

A combination of list comprehensions and str joins can do the job:

inf = float(inf)
A = [[0,1,4,inf,3],
     [1,0,2,inf,4],
     [4,2,0,1,5],
     [inf,inf,1,0,3],
     [3,4,5,3,0]]

print(n.join([.join([{:4}.format(item) for item in row]) 
      for row in A]))

yields

   0   1   4 inf   3
   1   0   2 inf   4
   4   2   0   1   5
 inf inf   1   0   3
   3   4   5   3   0

Using for-loops with indices is usually avoidable in Python, and is not considered Pythonic because it is less readable than its Pythonic cousin (see below). However, you could do this:

for i in range(n):
    for j in range(n):
        print {:4}.format(A[i][j]),
    print

The more Pythonic cousin would be:

for row in A:
    for val in row:
        print {:4}.format(val),
    print

However, this uses 30 print statements, whereas my original answer uses just one.

There is always the easy way.

import numpy as np
print(np.matrix(A))

printing a two dimensional array in python

for i in A:
    print(t.join(map(str, i)))

Leave a Reply

Your email address will not be published. Required fields are marked *