Форматный вывод: вывести строку с заранее неизвестным количеством заполнителей

Как используя форматный вывод вывести строку с заранее неизвестным количеством заполнителей? 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}}')

Выведет:

заголовок*********************
заголовок**********************
→ Ссылка