RanRag
RanRag

Reputation: 49567

Generate list of numbers in specific format

I need to generate a list of numbers in a specific format. The format is

mylist = [00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15]
#Numbers between 0-9 are preceded by a zero.

I know how to generate a normal list of numbers using range

>>> for i in range(0,16):
...     print i

So, is there any built-in way in python to generate a list of numbers in the specified format.

Upvotes: 23

Views: 27154

Answers (3)

Suhas_Pote
Suhas_Pote

Reputation: 4580

One liner in Python 3.x

[f'{i:>02}' for i in range(1, 16)]

Output:

['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15']

Upvotes: 1

PANDURANG
PANDURANG

Reputation: 9

in oracle write this query to generate 01 02 03 series

select lpad(rownum+1, decode(length(rownum),1,2, length(rownum)),0) from employees

Upvotes: -1

jterrace
jterrace

Reputation: 67073

Python string formatting allows you to specify a precision:

Precision (optional), given as a '.' (dot) followed by the precision.

In this case, you can use it with a value of 2 to get what you want:

>>> ["%.2d" % i for i in range(16)]
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12',
 '13', '14', '15']

You could also use the zfill function:

>>> str(3).zfill(2)
'03'

or the string format function:

>>> "{0:02d}".format(3)
'03'

Upvotes: 47

Related Questions