Выравнивание по правому краю зацикленного текста в python

#python-3.x #for-loop

#python-3.x #for-цикл

Вопрос:

Я пытаюсь выровнять свой печатный текст по правому краю с помощью интервала табуляции между двумя сгенерированными столбцами.

 di = {"name": "John", "Job": "Scientist", "Age": "N/A", "OS": "Mac"}
di = di.items()

for (keys, values) in di:
    print(keys, "t", values)
 

Однако я получаю нижеприведенный вывод на печать.

 name     John
Job      Scientist
Age      N/A
OS   Mac

 

Я заменил инструкцию print на print(f"{keys}{values:>15}") , но на самом деле это не помогает, и я получаю следующую печать.

 name           John
Job      Scientist
Age            N/A
OS            Mac
 

Я пытаюсь понять это:

 name     John
Job      Scientist
Age      N/A
OS       Mac
 

Есть какие-нибудь предложения?

РЕДАКТИРОВАТЬ: в идеале я бы хотел, чтобы это работало при распечатке в PyCharm или sublime text при вводе команды печати.

Комментарии:

1. Обратите внимание, что входные данные правильно выровнены на моем терминале. Это зависит от ширины табуляции. Использование очень длинного ключа, например, firstname должно надежно вызвать проблему.

Ответ №1:

Чтобы указать выравнивание печатного вывода, используйте возможность форматирования строки f, как указано в моем решении, конструкция форматирования {variable:<} предписывает печати выровнять выходную строку по левому краю. Для получения дополнительной информации и довольно хорошего руководства см. f-Strings Python 3: улучшенный синтаксис форматирования строк (Руководство) и, конечно, документ python, посвященный теме форматированных строковых литералов.

 di = {"name": "John", "Job": "Scientist", "Age": "N/A", "OS": "Mac"}
for key, value in di.items():
    print(f'{key:<}t{value:<}')
 

Комментарии:

1. Пожалуйста, добавьте некоторые пояснения к вашему ответу, чтобы другие могли извлечь из него уроки

2. @NicoHaase, я отредактировал свой ответ, чтобы добавить некоторые пояснения.

3. Это работает в распечатке терминала, но не работает в распечатке PyCharm или распечатке sublime text. У них все еще есть проблемы с отступами.

4. Строки всегда выравниваются сами по себе. Выравнивание бессмысленно без установки минимального размера подстановки.