Как форматировать позиции элементов двумерного массива при выводе?
Подскажите пожалуйста, есть ли в Python методы, позволяющие выравнивать элементы в двумерном массиве, в зависимости от количества знаков в этом элементе? Например, у меня есть матрица случайных чисел размерностью МхМ (М вводит пользователь), диапазон чисел - от 1 до 50. Я хочу, чтобы при выводе все элементы в каждом столбце были выравнены по правому краю относительно друг друга. Т.е, делаю 3 отступа, если элемент - это однозначное число, и 2 отступа, если двузначное. Сделал это через if .. else, но может быть есть более лаконичный и красивый способ? заранее спасибо
from random import randint
M = int(input('Please enter the size of matrix: '))
matrix = [[randint(1, 50) for _ in range(M)] for _ in range(M)]
for i in range(M):
for j in range(M):
if matrix[i][j] <= 9:
print(' {}'.format(matrix[i][j]), end=' ')
else:
print(' {}'.format(matrix[i][j]), end=' ')
print()
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
Вы можете использовать встроенные форматеры f-строк:
arr = [[1,2,3,4],[11,12,13,14],[111,112,113,114],[1111, 1112]]
for i in arr:
print(*[f"{x:>5}" for x in i]) #5 - размер паддинга
1 2 3 4
11 12 13 14
111 112 113 114
1111 1112
Автор решения: Servashu
→ Ссылка
for i in range(M):
for j in range(M):
print('{:>2d}'.format(matrix[i][j]), end=' ')