2016-12-20 4 views
1

Что я пытаюсь сделать, это распечатать все возможные комбинации для 10-значной комбинации ... Однако для 1 я хочу, чтобы он печатал 0000000001, 0000000002 и т. Д. Однако ZFill не работает. Что я делаю не так?Python Zfill не работает

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

ответ

0
print str(a).zfill(7) 

        ^^ 

Укажите ширину here.You можно просто сделать

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

Вы делаете zfill на list объекта. Вместо этого вам нужно выполнить zfill по каждому элементу списка. Ниже приведен образец пример для диапазона 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'] 

В соответствии с str.zfill() document:

string.zfill (с, ширина)

Pad цифровая строка с слева с нулевыми цифрами до ширина. Строки, начинающиеся со знака, обрабатываются правильно.

2

вы также можете позволить str.format обрабатывать начинку:

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

 Смежные вопросы

  • Нет связанных вопросов^_^