У меня есть куча чисел в списке и вы хотите напечатать их красиво, чтобы они были выровнены с правой стороны.номера формата с переменной длиной
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{:6d}".format(number))
Это дает мне:
192829
88288
912
1992
2828
38
Это работает, потому что я знал, что самый длинный номер 6 цифр, так что я жёстко 6: "{:6d}"
Что делать, если я не знаю, самый длинный номер. Единственное решение, о котором я могу думать, следующее.
length = len(str(max(numbers)))
output_template = "{:" + str(length) + "d}"
for number in numbers:
print(output_template.format(number))
Есть ли лучший способ?
лучший способ? На самом деле это хороший способ, ни один из других способов не может быть лучше, чем функция _max_. – GLHF
Если вы не можете предсказать максимальное число, нет способа сделать лучше, чем max. –
Пока ваши цифры не будут отрицательными. – khelwood