我正在通过附带项目学习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']
我在做什么错了?
答案 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)