Вы должны форматировать каждое целое число перед печатью:
print '[' + ', '.join(map(lambda i: format(i, '04d'), a)) + ']'
или использование:
print '[' + ', '.join(bits) + ']'
без первого преобразования всех строк в целые числа.
Демо:
>>> bits=['0100','0011','1110','1001','0100']
>>> a=map(int,bits)
>>> print '[' + ', '.join(map(lambda i: format(i, '04d'), a)) + ']'
[0100, 0011, 1110, 1001, 0100]
>>> print '[' + ', '.join(bits) + ']'
[0100, 0011, 1110, 1001, 0100]
Обратите внимание, что если ваши bits
строки предназначены для двоичных значений, вам нужно интерпретировать их как таковые:
>>> int('0100', 2)
4
>>> format(4, '04b')
'0100'
Это преобразует строку нулей и в целое число, интерпретируя цифры как двоичные и преобразуя целое число обратно в двоичное строковое представление, используя 4 цифры и 0-дополнение.
У вас есть целые числа, вам придется переформатировать их как строки с заполнением. –
Для чего вам это нужно? Целое число с ведущими нулями ничем не отличается от них. –
Вы имеете в виду восьмеричные числа, ведущие 0? –