Как я могу заполнить строку Python пробелами? - PullRequest
445 голосов
/ 15 апреля 2011

Я хочу заполнить строку пробелами.Я знаю, что для нулей работает следующее:

>>> print  "'%06d'"%4
'000004'

Но что мне делать, когда я этого хочу?:

'hi    '

конечно, я могу измерить длину строки и сделать str+" "*leftover, но я бы хотел кратчайший путь.

Ответы [ 14 ]

3 голосов
/ 15 сентября 2015

Разве не было бы более питонно использовать нарезку?

Например, чтобы заполнить строку пробелами справа до длины 10 символов:

>>> x = "string"    
>>> (x + " " * 10)[:10]   
'string    '

Чтобы дополнить еес пробелами слева до 15 символов:

>>> (" " * 15 + x)[-15:]
'         string'

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

1 голос
/ 29 января 2019

Отличный трюк для использования вместо различных форматов печати:

(1) Подушка с пробелами справа:

('hi' + '        ')[:8]

(2) Подушка с ведущими нулями слева:

('0000' + str(2))[-4:]
1 голос
/ 23 ноября 2018

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

"hello" + " ".join([" " for x in range(1,10)])
output --> 'hello                 '
0 голосов
/ 11 декабря 2017

+ = может использоваться для добавления в строку

>>> string = 'hi'
>>> for s in range(0,5):
...    string += ' '
... 
>>> string
'hi          '
...