用于zfill
根据需要添加这些零:
hours = [time.strptime(i[:-1].zfill(4), "%H%M") for i in a]
通过使用i[:-1]
,我们删除了那个讨厌的尾随点,并将在左侧.zfill(4)
添加足够的0
字符以使其达到 4 位。
演示:
>>> import time
>>> a = ['800.', '830.', '900.', '30.']
>>> [time.strptime(i[:-1].zfill(4), "%H%M") for i in a]
[time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1), time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1), time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=9, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1), time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)]
如果它们是浮点值,请使用它们上的format()
函数为您提供零填充值:
>>> format(800., '04.0f')
'0800'
所以这样做:
hours = [time.strptime(format(i % 2400, '04.0f'), "%H%M") for i in a]
其中% 2400
将您的值标准化为 0. 到 2399. 范围。