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

Как в Python делается выравнивание элементов строк при выводе?

Приветствую

Задался вопросом выравнивание элементов нескольких списков относительно их позиций так, чтобы при выводе каждый элемент был расположен по вертикальной оси на одинаковом смещении. С элементами, состоящими из одного символа все впорядке, но если в одном списке есть элемент произвольной длинны, то все рушится.

Допустим есть два списка. В каждом списке по пять элементов:
a = ['1', '2', '3', '4', '5']
b = ['●', '●', '●', '●', '●']

Если элементы выводить через for...in в строку, то отображается нормально:
5d5ed9a9e9564ccca75d0ee22228c399.png
Если же какому-нибудь элементу первого списка увеличить длинну, то, как писал выше, все рушится:
3559170906984ad7a2ee183fdd5d5fa4.png
Помню, где-то читал про это и даже записал себе информацию об этом, но недавно потерял эту информацию, а найти не могу. Подскажите пожалуйста как решить.
  • Вопрос задан
  • 3278 просмотров
Подписаться 2 Оценить Комментировать
Решение пользователя Roland_Deschain К ответам на вопрос (4)
Roland_Deschain
@Roland_Deschain
a = ['1', '2', '3333', '4', '5']
b = ['●', '●', '●', '●', '●']
c = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh']

lst = [a, b, c]

max_len = max(len(i) for x in lst for i in x)

for x in lst:
    w = '\t'.join(['%' + str(max_len) + 's']*len(x))
    print(w % tuple(x))
Ответ написан
Комментировать