Задать вопрос
@Hukyl

Как понять данный код?

Вот код:
matrice = [[-10, -9.8], [4, 6]]
max_len = max([len(str(e)) for e in sum(matrice, [])])
for row in matrice:
    print(*list(map('{{:>{length}}}'.format(length=max_len).format, row)))


Со строкой max_len ещё понятно, но дальше для меня тёмный лес...
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Дальше проход по строкам матрицы с форматированием каждой ячейки по ширине max_len.
Ответ написан
Комментировать
tema_sun
@tema_sun
'{{:>{length}}}'.format(length=max_len)
Вот эта часть вернет строку с другой подстановкой, например '{:>4}', которая будет передана в map с функцией format. Далее map применит эту функцию к каждому элементу в row и приведет все входные строки к одной максимальной длине путем добаления пробелов слева. Т.е. в нашем случае, самая длинная строка это "-9.8", эта функция добавит к остальным значениям столько пробелов, чтобы их длинна стала такой же.
Очевидно, это нужно для ровного и красивого принта в консоль. Сталбики будут выравнены с выключкой вправо.
Не уверен, что стало яснее :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы