2172 Stimmen

Wie fügt man Nullen in eine Zeichenkette ein?

Was ist ein Pythonic Weg, um eine numerische Zeichenfolge mit Nullen auf der linken Seite aufzufüllen, d.h. so dass die numerische Zeichenfolge eine bestimmte Länge hat?

3385voto

Harley Holcombe Punkte 165146

Streicher:

>>> n = '4'
>>> print(n.zfill(3))
004

Und für Zahlen:

>>> n = 4
>>> print(f'{n:03}') # Preferred method, python >= 3.6
004
>>> print('%03d' % n)
004
>>> print(format(n, '03')) # python >= 2.6
004
>>> print('{0:03d}'.format(n))  # python >= 2.6 + python 3
004
>>> print('{foo:03d}'.format(foo=n))  # python >= 2.6 + python 3
004
>>> print('{:03d}'.format(n))  # python >= 2.7 + python3
004

Dokumentation zur Formatierung von Zeichenketten .

489voto

Paul D. Eden Punkte 18838

Verwenden Sie einfach die rjust Methode des String-Objekts.

In diesem Beispiel wird eine Zeichenkette von 10 Zeichen Länge erstellt, die nach Bedarf aufgefüllt wird.

>>> t = 'test'
>>> t.rjust(10, '0')
>>> '000000test'

217voto

Konrad Rudolph Punkte 503837

Neben zfill können Sie die allgemeine String-Formatierung verwenden:

print(f'{number:05d}') # (since Python 3.6), or
print('{:05d}'.format(number)) # or
print('{0:05d}'.format(number)) # or (explicit 0th positional arg. selection)
print('{n:05d}'.format(n=number)) # or (explicit `n` keyword arg. selection)
print(format(number, '05d'))

Dokumentation für String-Formatierung y f-strings .

215voto

Cees Timmerman Punkte 15076

Für Python 3.6+ mit f-strings:

>>> i = 1
>>> f"{i:0>2}"  # Works for both numbers and strings.
'01'
>>> f"{i:02}"  # Works only for numbers.
'01'

Für Python 2 bis Python 3.5:

>>> "{:0>2}".format("1")  # Works for both numbers and strings.
'01'
>>> "{:02}".format(1)  # Works only for numbers.
'01'

75voto

Victor Barrantes Punkte 2158
>>> '99'.zfill(5)
'00099'
>>> '99'.rjust(5,'0')
'00099'

wenn Sie das Gegenteil wollen:

>>> '99'.ljust(5,'0')
'99000'

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