-1

I need to show a matrix with some numbers, but when the numbers have more digits that the ones below them, the rows move.

    for i in range(len(mat)):
        for j in range(len(mat[0])):
            print(mat[i][j],end= " \t ",)
        print(ubicaciones(i))

it looks like this:

8    11      10      6   6   Buenos Aires
12   8   8   10      4   Catamarca
2    9   5   11      10      Chaco
6    9   6   11      15      Chubut
8    10      8   13      7   Córdoba
10   8   8   12      14      Corrientes
11   16      10      8   7   Entre Ríos
5    6   6   6   7   Formosa
10   9   11      9   15      Jujuy
2    10      7   9   4   La Pampa
12   6   10      8   5   La Rioja
7    8   12      7   4   Mendoza
13   11      10      6   9   Misiones
6    8   8   7   9   Neuquén
6    10      9   12      11      Río Negro
13   9   8   4   7   Salta
10   12      12      6   8   San Juan
5    12      16      7   6   San Luis
9    6   12      10      9   Santa Cruz
9    13      6   8   7   Santa Fe
11   4   12      15      8   Santiago del Estero
9    4   8   10      8   Tierra del Fuego
5    9   11      9   6   Tucumán

I need to use format()

tuple function:

def ubicaciones(num):
    ubicaciones = "Buenos Aires", "Catamarca", "Chaco", "Chubut", "Córdoba", "Corrientes", "Entre Ríos", "Formosa", "Jujuy", "La Pampa", "La Rioja", "Mendoza", "Misiones", "Neuquén"\
        , "Río Negro", "Salta", "San Juan", "San Luis", "Santa Cruz", "Santa Fe", "Santiago del Estero", "Tierra del Fuego", "Tucumán"
    estados = "Nuevo", "Usado"
    return ubicaciones[num]

1 Answers1

0

You can use list comprehension and string joins:

 [row.append(" "+ubicaciones[mat.index(x)]) for row in mat]
 print('\n'.join([''.join(['{:4}'.format(item) for item in row]) 
      for row in mat]))
nushen
  • 61
  • 5