Python 3.6:如何在生成的列表中填充数字?

时间:2018-10-24 15:08:26

标签: python-3.x

我的程序旨在生成彩票号码。我想用一位数字在前面填充零。例如02.我尝试了zfill(2)'.02d'的各种方式,但仍然找不到我做错的事情。

from random import randint, sample
lotteryNumbers = []

for number in range(0,10):
    lotteryNumbers.append(sorted(sample(range(69), 5)))
    r = randint(1,26)
    lotteryNumbers[number].append('PB: ' +str(r))

print(' QP','A.', format(lotteryNumbers[0], '02d'))
print(' QP','B.', format(lotteryNumbers[1]))
# TypeError: unsupported format string passed to list.__format__

1 个答案:

答案 0 :(得分:0)

您的lotteryNumbers元素是由 string 组成的5个数字的异构列表,例如:

>>> lotteryNumbers[0]
[11, 52, 54, 61, 68, 'PB: 8']

但是内置的format函数使用'02d'格式规范,可以在数字上使用。它不适用于列表。

>>> format(8, '02d')
'08'
>>> format([8], '02d')
TypeError: unsupported format string passed to list.__format__

我的建议是仅在列表中存储数字,即使数据同质,然后编写用于显示/格式化数据的单独功能。此函数应接受数字列表作为输入。

请参阅https://pyformat.info,以获取有关Python中字符串格式化的良好资源。