【发布时间】:2015-06-06 17:38:48
【问题描述】:
传入日期如下所示:
3/9/2015
我已经想出了如何去掉/ 标记的日期,所以我现在有了这个:
392015
现在,我需要在月份和日期中使用前导零,因此所需的输出是
03092015
【问题讨论】:
传入日期如下所示:
3/9/2015
我已经想出了如何去掉/ 标记的日期,所以我现在有了这个:
392015
现在,我需要在月份和日期中使用前导零,因此所需的输出是
03092015
【问题讨论】:
与其剥离斜线,不如将其分开。列表中有 3 个不同的数字,分别与日、月和年相关,因此请逐一检查,如果长度为 1,则在开头添加一个零。最后将它们连接在一起,你就有了你的号码。
还有另一种添加前导零的快速方法。使用str().zfill( num ) 将用零填充字符串,直到达到一定数量的字符。
由于您应该能够在第一段之后自己编写它,所以我将放入一个单行版本,以便您可以看到它有效,但不要复制它,因为很明显不是您写的.
i = "3/9/2015"
print ''.join(x.zfill(2) for x in i.split('/'))
# 03092015
这是一种不用zfill的方式:
print ''.join(('0' if len(x)<2 else '')+x for x in i.split('/'))
【讨论】:
zfill 中给出的数字意味着它只会添加零,直到字符串达到该长度,在本例中为 2 :)
如果您不想使用 for 循环或任何太花哨的东西,只需执行以下简单操作:
date = '392015'
newdate = '0' + date[0] + '0' + date[1:]
这将输出:
03092015
从字面上看,所有这些都是“添加”零。
更新:要让这种primitive 技术适用于所有日期,只需使用两个primitive 'if-statements' ;)
date = '3/9/2015'
oldDate = date.split('/')
if len(oldDate[0]) < 2:
oldDate[0]= '0' + oldDate[0]
if len(oldDate[1]) < 2:
oldDate[1]= '0' + oldDate[1]
newDate = ''.join(oldDate)
(注意:我只是给出了 OP 选项,绝不是我声称这是一个更好的方法)
【讨论】:
先拆分再填充再加入:
newDate = ''.join(i.zfill(2) for i in oldDate.split('/'))
【讨论】: