使用两种不同分隔符拆分字符串为列表:如何拆分带AM的时间字符串为4部分?
问题原因
你当前仅使用split(':')拆分字符串,只会按冒号切割,最后一段拆分结果为'00AM',没有将秒数和AM时段标识分开。
解决方法1:手动拆分最后一段
无需引入额外依赖,处理split后的最后一段即可,代码如下:
s = "19:00:00AM" def timeConversion(s): timelist = s.split(":") # 拆分最后一段的秒和时段 second = timelist[-1][:2] period = timelist[-1][2:] # 拼接得到最终结果 result = timelist[:2] + [second, period] print(result) return result timeConversion(s)
运行后输出即为你需要的['19', '00', '00', 'AM']。
解决方法2:正则匹配(更灵活)
如果需要兼容更多格式场景,可以用正则直接匹配所有符合要求的片段:
import re s = "19:00:00AM" def timeConversion(s): # 匹配两位数字 或 AM/PM标识 result = re.findall(r'\d{2}|[AP]M', s) print(result) return result timeConversion(s)
内容的提问来源于stack exchange,提问作者jeremslol
相关产品推荐
相关产品推荐

