Python处理小时格式列表:修复strip去除数字后的异常问题
解决时间字符串提取小时的问题
问题根源
你用strip(':0')处理的逻辑错误——strip()会移除字符串两端所有属于指定字符集的字符,而非仅去掉末尾的:00。比如'20:00'会被从右侧依次移除0、0、:、0,最终只剩'2';'00:00'的所有字符都属于:0集合,直接被清空。
可靠解决方案
以下几种方法都能正确提取小时部分:
1. 按冒号分割(最直观)
利用时间格式固定为HH:MM的特点,直接分割取前半部分:
time_list = ['02:00', '01:00', '03:00', '00:00', '04:00', '05:00', '06:00', '23:00', '24:00', '07:00', '22:00', '14:00', '13:00', '15:00', '21:00', '08:00', '16:00', '12:00', '20:00', '17:00', '11:00', '18:00', '09:00', '10:00'] processed = [item.split(':')[0] for item in time_list] # 结果:['02', '01', '03', '00', '04', ..., '20', ..., '10']
2. 固定位置切片(最高效)
因为HH:MM是固定5位字符串,直接取前2个字符:
processed = [item[:2] for item in time_list]
3. 正则匹配(适配格式变化)
如果后续可能出现HH:MM:SS等格式,用正则匹配开头的数字部分:
import re processed = [re.match(r'^\d+', item).group() for item in time_list]
内容的提问来源于stack exchange,提问作者TheSwedishFlu
相关产品推荐
相关产品推荐

