我正在学习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']我做错了什么?
发布于 2018-08-08 08:32:36
moo是一个字符串列表,因此不能直接对其使用str.zfill方法。
你可以使用列表理解来做这件事:
moo = [i.zfill(2) for i in moo]然后,moo将变成:
['06', '07', '08', '09', '12']发布于 2018-08-08 08:33:18
使用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']发布于 2018-08-08 08:33:24
应将zfill函数应用于每个数字。你可以试试这个
moo = ['06', '07', '8', '9', '12']
moo = [str(x).zfill(2) for x in moo]
print(moo) https://stackoverflow.com/questions/51737082
复制相似问题