"1234".rjust(13,"0")
Должен делать то, что вам нужно
дополнение:
a = ["123", "12"]
max_width = sorted([len(i) for i in a])[-1]
поместите max_width вместо 13 выше и поместите все ваши строки в один массив a (который мне кажется гораздо более удобным, чем стек переменных).
дополнительная неприятность:
(Используя массив чисел, чтобы приблизиться к вашему вопросу.)
a = [123, 33, 0 ,223]
[str(x).rjust(sorted([len(str(i)) for i in a])[-1],"0") for x in a]
Кто сказал, что Perl - единственный язык, на котором легко генерировать мозговые дампы? Если регулярные выражения являются крестным отцом сложного кода, то понимание списков является крестной матерью.
(Я относительно новичок в python и довольно уверен, что где-то в массивах должна быть max-функция, которая снизила бы сложность. Хорошо, проверено, есть. )
[str(x).rjust(max([len(str(i) for i in a]),"0") for x in a]
И, пожалуйста, обратите внимание на комментарии ниже «не помещать вычисление инварианта (максимального значения) в понимание внешнего списка».