Python-在数字字符串列表中填充0(不是整数)-ZFILL

时间:2018-08-08 00:28:13

标签: python

我正在通过附带项目学习python。

现在大约坚持30分钟。如何在数字串上填充0,这样我的输出将始终为2位数字?命中此列表的字符串将始终为两位数。我宁愿将其保留为字符串而不是整数。

moo = ['06', '07', '8', '9', '12']
moo = str(moo).zfill(2)
print(moo)

我要返回同样的东西。

['06', '07', '8', '9', '12']

所需的输出:

['06, '07', '08', '09, '12']

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

moo是一个字符串列表,因此不能直接在其上使用str.zfill方法。

您可以使用列表理解来代替:

moo = [i.zfill(2) for i in moo]

moo将变为:

['06', '07', '08', '09', '12']

答案 1 :(得分:1)

使用str(moo)会将列表转换为字符串"['06', '07', '8', '9', '12']",因此zfill(2)不会更改任何内容,因为该字符串已经是28个字符的宽度。

相反,您应该迭代每个列表项:

moo = ['06', '07', '8', '9', '12']
for idx, item in enumerate(moo):
    moo[idx] = item.zfill(2)
print(moo)

或使用列表理解:

moo = ['06', '07', '8', '9', '12']
moo = [item.zfill(2) for item in moo]
print(moo)

输出:

['06', '07', '08', '09', '12']

答案 2 :(得分:0)

zfill函数应应用于每个数字。你可以 试试这个

moo = ['06', '07', '8', '9', '12']                                              
moo = [str(x).zfill(2) for x in moo]                                            
print(moo)