вставка вкладки в формате строки Python - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь сформировать строку, используя format (), но не могу понять это.

lems = ['scaena', 'persona', 'improbus']
for i in lems:
    print('{}{}{}'.format(i, '\t', 'whatever'))

, но вкладка не натянута, как я ожидал.На самом деле, последний элемент в списке на вкладке применяется, когда она печатается:

scaena  text
persona text
improbus        text

Что происходит?спасибо.

Ответы [ 3 ]

0 голосов
/ 02 марта 2019

Вы также можете использовать f-строку:

lems = ['scaena', 'persona', 'improbus']
for i in lems:
    print(f"{i}\t{'whatever'}")

Вы можете использовать функцию repr(), чтобы увидеть, что вкладка добавлена ​​к строке:

from reprlib import repr

lems = ['scaena', 'persona', 'improbus']
for i in lems:
    print(repr(f"{i}\t{'whatever'}"))

Вывод:

'scaena\twhatever'
'persona\twhatever'
'improbus\twhatever'
0 голосов
/ 03 марта 2019

@ Бхаргав Рао, на самом деле в моем исходном вопросе нет ничего плохого в том, что у меня была проблема с питоном, поэтому мой вопрос уже содержит ответ, который я повторяю и отмечаю как правильный ответ:

for i in lems:
    i = i.strip()
    print('{}{}{}'.format(i, '\t', 'text'))
0 голосов
/ 02 марта 2019

Вкладка работает правильно, вы, вероятно, ищете .ljust(width)

lems = ['scaena', 'persona', 'improbus']
for i in lems:
    print('{}{}'.format(i.ljust(10), 'whatever'))

распечатывает:

scaena    whatever
persona   whatever
improbus  whatever

Иногда полезно вычислитьмаксимальная длина ваших строк, чтобы вывод был более надежным

lems = ['scaena', 'persona', 'improbus']
max_len = max(len(l) for l in lems)
for i in lems:
    print('{}{}'.format(i.ljust(max_len + 1), 'whatever'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...