You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python将类2h 28min格式时长字符串转纯分钟数的简便实现方法

电影时长字符串转总分钟数的简便实现

核心需求

将格式为Xh Ymin的电影时长字符串转换为总分钟数,计算规则为:小时数值×60 + 分钟数值,例如2h 28min转换后结果为148分钟。

现有代码的冗余点

  • 手动实现字符拆分函数,逐字符提取小时数字的逻辑完全多余
  • 依赖split后的固定列表位置判断小时、分钟的位置,遇到无空格、缺某一段时长的场景容易触发索引越界错误
  • 重复调用正则提取数字,逻辑分散、冗余度高

简便实现方案

用单条正则一次性匹配所有带单位的数值片段,自动按单位计算累加值,不需要手动判断单位位置、不需要自定义拆分函数:

import re

def calc_total_minutes(time_str):
    total_min = 0
    # 兼容带空格/无空格、缺小时/缺分钟的常见输入格式
    for num, unit in re.findall(r'(\d+)\s*(h|min)', time_str):
        num = int(num)
        total_min += num * 60 if unit == 'h' else num
    return total_min

方案对比优势

  • 代码量仅为原实现的1/3,删掉了冗余的自定义拆分逻辑、固定位置判断逻辑
  • 容错性更强:不管输入是2h28min(无空格)、3h(仅小时)、75min(仅分钟)、1h 09min都能正常计算,不会因为split后列表长度不足触发报错
  • 扩展性好:后续如果需要支持其他时间单位,只需要在正则匹配规则里补充对应单位的判断逻辑即可,不需要重构主体代码

内容的提问来源于stack exchange,提问作者Amr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 08:54:11