Mengingat:
a = 1
b = 10
c = 100
Bagaimana cara menampilkan nol untuk semua nomor dengan kurang dari dua digit?
Artinya,
01
10
100
Di Python versi 2 yang dapat anda lakukan:
print "%02d" % (1,)
Pada dasarnya % seperti printf
atau sprintf
.
Untuk Python 3.+ perilaku yang sama dapat dicapai dengan:
print("{:02d}".format(1))
Untuk Python 3.6+ perilaku yang sama dapat dicapai dengan f-string:
print(f"{1:02d}")
Di Python >= 3.6, anda dapat melakukan ini dengan ringkas dengan yang baru f-string yang diperkenalkan dengan menggunakan:
f'{val:02}'
yang mencetak variabel dengan nama val
dengan isi
nilai 0
dan a lebar
dari 2
.
Untuk anda contoh anda dapat melakukan hal ini baik dalam loop:
a, b, c = 1, 10, 100
for val in [a, b, c]:
print(f'{val:02}')
yang mencetak:
01
10
100
Untuk informasi lebih lanjut tentang f-string, lihatlah PEP 498 di mana mereka diperkenalkan.
Yang Pythonic cara untuk melakukan ini:
str(number).rjust(string_width, fill_char)
Dengan cara ini, asli string yang dikembalikan tidak berubah jika panjangnya lebih besar dari string_width. Contoh:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
Hasil:
01
10
100
Menggunakan format string - http://docs.python.org/lib/typesseq-strings.html
Misalnya:
python -c 'print "%(num)02d" % {"num":5}'
Ini adalah bagaimana saya melakukannya:
str(1).zfill(len(str(total)))
Pada dasarnya zfill mengambil jumlah angka nol yang ingin anda tambahkan, sehingga's mudah untuk mengambil jumlah terbesar, mengubahnya menjadi sebuah string dan mendapatkan panjang, seperti ini:
Python 3.6.5 (default, 11 Mei 2018, 04:00:52) [GCC 8.1.0] pada linux Jenis "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut. >>> total = 100 >>> print(str(1).zfill(len(str(total)))) 001 >>> total = 1000 >>> print(str(1).zfill(len(str(total)))) 0001 >>> total = 10000 >>> print(str(1).zfill(len(str(total)))) 00001 >>>
df['Col1']=df['Col1'].menerapkan(lambda x: '{0:0>5}'.format(x)) (5 adalah jumlah total digit)
Saya menggunakan link ini: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/