首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -在数字(非整数)字符串列表中填充0- ZFILL

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

Stack Overflow用户
提问于 2018-08-08 08:28:13
回答 3查看 497关注 0票数 2

我正在学习python,还有一个副业。

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

代码语言:javascript
复制
moo = ['06', '07', '8', '9', '12']
moo = str(moo).zfill(2)
print(moo)

我要返回同样的东西..

代码语言:javascript
复制
['06', '07', '8', '9', '12']

所需输出:

代码语言:javascript
复制
['06, '07', '08', '09, '12']

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-08 08:32:36

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

你可以使用列表理解来做这件事:

代码语言:javascript
复制
moo = [i.zfill(2) for i in moo]

然后,moo将变成:

代码语言:javascript
复制
['06', '07', '08', '09', '12']
票数 2
EN

Stack Overflow用户

发布于 2018-08-08 08:33:18

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

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

代码语言:javascript
复制
moo = ['06', '07', '8', '9', '12']
for idx, item in enumerate(moo):
    moo[idx] = item.zfill(2)
print(moo)

或者使用列表理解:

代码语言:javascript
复制
moo = ['06', '07', '8', '9', '12']
moo = [item.zfill(2) for item in moo]
print(moo)

输出:

代码语言:javascript
复制
['06', '07', '08', '09', '12']
票数 1
EN

Stack Overflow用户

发布于 2018-08-08 08:33:24

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

代码语言:javascript
复制
moo = ['06', '07', '8', '9', '12']                                              
moo = [str(x).zfill(2) for x in moo]                                            
print(moo) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51737082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档