列表中的前导零而不使用字符串

时间:2016-10-31 18:14:50

标签: python

有没有办法在Python中显示带有前导零的数据< = 9,但不使用字符串?

我帮助学生完成作业,他的模块计算随机数列表并将该列表返回给他的主程序。因此,在这种情况下无法使用format()。

import random
list = []
x = 0
while x < 6:
    number = random.randint(1,70)
    if number <= 9:
        temp = str(number)
        temp = temp.zfill(2)
        list.append(temp)
    else:
        list.append(str(number))
    x+=1

print(list)

示例输出:

['16', '41', '17', '40', '01', '28']

期望的输出:

[16, 41, 17, 40, 01, 28]

1 个答案:

答案 0 :(得分:0)

嗯,您可以存储没有前导零的数字,然后在打印时可以将其格式化为带有前导零的字符串:

import random
lst = [] # Avoid using keywords
x = 0
while x < 6:
    number = random.randint(1,70)
    lst.append(number)
    x+=1

print("[" + ", ".join(['%02d' % x for x in lst]) + "]")

最后一行非常奇怪,让我们分解一下:

然而,关于python的一个很酷的事情是你可以用简单的方式做复杂的事情,例如你的代码可以简化为几行代码:

import random
lst = random.sample(range(1, 70), 6)
print("[" + ", ".join(['%02d' % x for x in lst]) + "]")