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.

8voto

Amir Mofakhar Punkte 6269

Entfernen Sie einfach die 0 und es wird stattdessen ein Leerzeichen eingefügt:

>>> print  "'%6d'"%4

5voto

Zev Chonoles Punkte 935

Wäre es nicht pythonischer, Slicing zu verwenden?

Zum Beispiel, um eine Zeichenkette mit Leerzeichen auf der rechten Seite aufzufüllen, bis sie 10 Zeichen lang ist:

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

Um ihn mit Leerzeichen auf der linken Seite aufzufüllen, bis er 15 Zeichen lang ist:

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

Dazu muss man natürlich wissen, wie lang das Pad sein soll, aber es ist nicht erforderlich, die Länge des Strings zu messen, mit dem man beginnt.

3voto

Erik Anderson Punkte 4471

Ein netter Trick, der anstelle der verschiedenen Druckformate verwendet werden kann:

(1) Pad mit Leerzeichen nach rechts:

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

(2) Auffüllen mit führenden Nullen auf der linken Seite:

('0000' + str(2))[-4:]

-4voto

foobar666 Punkte 13

Du könntest es mit Listenverständnis machen, das würde dir auch eine Idee von der Anzahl der Leerzeichen geben und wäre ein Einzeiler.

"hello" + " ".join([" " for x in range(1,10)])
output --> 'hello                 '

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