2017-01-05 9 views
0

これで時間を追加する方法のリストである:11' (7メートル11S):は、Pythonのリスト

lsty = ['1:07:11', '2:37:28', '07:11', '1:07:11'] 

時間は '午前2時37分28秒'(2Hの37メートルの28S)または'07のようにすることができます。リストをどのように集計できますか?

+0

あなたは全く研究をしましたか? – Psytho

+0

@ Alex.Sはい。私はこれを見つけた[リンク](http://stackoverflow.com/questions/2780897/python-sum-up-time)。しかし、時間がこの形式のときは、h:m:s – EL323

答えて

1

ネイティブのPython datetime.timedeltaオブジェクトが役に立ちます。Pythonが理解できる方法で時間を表現し、他のtimedeltaオブジェクトで算術演算を実行できます。

おそらくこのようなものでしょうか?これは完全にテストされていません:

from datetime import timedelta 
def sum_times(times): 
    sum = timedelta(0) 
    for time in times: 
     time_split = time.split(':') # Extract just time vals 
     if len(time_split) == 2: # Just mins/secs 
      t_delt = timedelta(minutes=time_split[0], 
           seconds=time_split[1]) 
     else: 
      t_delt = timedelta(hours=time_split[0], 
           minutes=time_split[1], 
           seconds=time_split[2]) 
     sum += t_delt # This is where the magic happens 
    return '%s:%s:%s' % (sum.hours, sum.minutes, sum.seconds)