Python

マラソン記録を秒にする変換する関数

マラソン等の記録データ(例:3:53:20、2:08:20など)を秒に変換するというニッチケースな関数を書いてみました。

def second(time):
    import re

    time_ref = re.split(':|:' , time)
    time_ref = list(filter(lambda n: n != '', time_ref))[::-1]

    second = 0
    for e ,i   in enumerate(time_ref) :
        second = second + int(i) * 60 ** int(e)

    return second

本当は日本語表記にありがちな「時分秒」の含まれる時間表記を数値化したかったのですが「2時間30秒」と「分」が抜けたケースをif文以外で回避できる方法を思いつかず。。

もっと良いやり方知っていましたら、ご教授いただけますと幸いです。