786 Stimmen

Wie kann ich eine Python-Zeichenkette mit Leerzeichen auffüllen?

Ich möchte eine Zeichenkette mit Leerzeichen auffüllen. Ich weiß, dass das Folgende für Nullen funktioniert:

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

Aber was soll ich tun, wenn ich das will?

'hi    '

Natürlich kann ich die Länge der Schnur messen und str+" "*leftover aber ich möchte den kürzesten Weg wählen.

63voto

Johnsyweb Punkte 128606

使用方法 str.ljust() :

>>> 'Hi'.ljust(6)
'Hi    '

Sie sollten auch Folgendes berücksichtigen string.zfill() , str.ljust() y str.center() für die String-Formatierung. Diese können verkettet werden und haben den ' füllen. ' Zeichen angegeben, also:

>>> ('3'.zfill(8) + 'blind'.rjust(8) + 'mice'.ljust(8, '.')).center(40)
'        00000003   blindmice....        '

Diese String-Formatierungsvorgänge haben den Vorteil, dass sie in Python v2 und v3 arbeiten.

Werfen Sie einen Blick auf pydoc str Irgendwann: Es gibt eine Fülle von guten Sachen darin.

47voto

K.Mat Punkte 1040

TL;DR

text = 'hi'
print(f'{text:10}') # 'hi        '

Längere Erklärung

Desde Python3.6 Sie können f-Zeichenketten verwenden wörtliche Interpolation .

Variabler Raum:

value = 4
space = 10

# move value to left
print(f'foo {value:<{space}} bar') # foo 4          bar
# move value to right
print(f'foo {value:>{space}} bar') # foo          4 bar
# center value
print(f'foo {value:^{space}} bar') # foo     4      bar

Konstanter Raum:

value = 4

# move value to left
print(f'foo {value:<10} bar') # foo 4          bar
# move value to right
print(f'foo {value:>10} bar') # foo          4 bar
# center value
print(f'foo {value:^10} bar') # foo     4      bar

Wenn Sie mit einem anderen Zeichen als dem Leerzeichen auffüllen wollen, geben Sie es am Anfang an:

value = 4
space = 10
padd = '_'

print(f'foo {value:{padd}^{space}} bar') # foo ____4_____ bar
print(f'foo {value:_^10} bar')           # foo ____4_____ bar

40voto

WAF Punkte 975

Ab Python 3.6 können Sie einfach

>>> strng = 'hi'
>>> f'{strng: <10}'

mit Interpolation von Zeichenketten .

Oder, wenn die Größe der Füllung in einer Variablen steht, wie hier (danke @Matt M.!):

>>> to_pad = 10
>>> f'{strng: <{to_pad}}'

21voto

Remi Punkte 19243

Können Sie auch Zentrum Ihre Zeichenfolge:

'{0: ^20}'.format('nice')

10voto

aodj Punkte 2073

Verwenden Sie Python 2.7's Mini-Formatierung für Zeichenketten :

'{0: <8}'.format('123')

Diese ist linksbündig und wird mit dem Zeichen ' ' auf 8 Zeichen aufgefüllt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X