2016-12-20 3 views
1

Was ich versuche zu tun ist alle möglichen Kombinationen für eine 10-stellige Kombination zu drucken ... Allerdings für 1 Ich möchte es 0000000001, 0000000002, etc. drucken. ZFill funktioniert jedoch nicht. Was mache ich falsch?Python Zfill funktioniert nicht

a = range(0, 1000000) 
print str(a).zfill(1000000) 

Antwort

0
print str(a).zfill(7) 

        ^^ 

Breite Geben Sie here.You einfach tun

print map(lambda x:str(x).zfill(7), range(0, 10)) 
6

Sie tun zfill auf list Objekt. Stattdessen müssen Sie zfill für jeden Listenpunkt ausführen. Im Folgenden finden Sie die Probe Beispiel für Bereich von 10:

>>> a = range(0, 10) 

#     v this value represent the count of zeros 
#     v It should be `7` in your case 
>>> [str(i).zfill(10) for i in a] 
['0000000000', '0000000001', '0000000002', '0000000003', '0000000004', '0000000005', '0000000006', '0000000007', '0000000008', '0000000009'] 

Gemäß der str.zfill() document:

string.zfill (s, Breite)

Pad ein numerischer String s auf der linken Seite mit Nullstellen, bis die angegebene Breite erreicht ist. Zeichenfolgen, die mit einem Zeichen beginnen, werden korrekt behandelt.

2

können Sie auch lassen str.format die Füllung handhaben:

for a in range(1000000): 
    print('{:07d}'.format(a))