Форматный вывод: вывести строку с заранее неизвестным количеством заполнителей
Как используя форматный вывод вывести строку с заранее неизвестным количеством заполнителей? print('{n: <len}') требует литерал на место len
Вывожу таблицу. Надо как-то отрегулировать ширину колонок. Нет ли в питоне какой библиотеки, которая поддерживает форматный вывод с заранее неизвестным количеством знаков, чтобы работал какой-то такой код?
def print_table():
max_len = 0
for header in table['header']:
max_len = max(len(header), max_len)
for row in table['value']:
for value in row:
max_len = max(max_len, len(value))
for header in table['header']:
print('{header: <max_len}'.format(header = header, max_len = max_len), end = '')
print('')
for row in table['value']:
for value in row:
max_len = max(max_len, len(value))
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Просто возьмите max_len еще раз в фигурные скобки, тогда сначала подставится он, потом подставится header в соответствии с подставленным max_len:
print('{header: <{max_len}}'.format(header=header, max_len=max_len), end = '')
Демонстрация:
header = "заголовок"
max_len = 30
print(f'{header:*<{max_len}}')
max_len = 31
print(f'{header:*<{max_len}}')
Выведет:
заголовок*********************
заголовок**********************