2016-08-04 13 views
0

mit einer solchen Zeichenfolge 12:65:84 und sagte, dass es Zeit in h:m:s AND Werte darstellt, kann es nicht korrekt, z. 65 Minuten, die übersetzt werden sollten in 1 Stunde und 5 MinutenKonvertieren möglicherweise falsche Zeit in Sekunden

Ich muss diese Zahlen auf die Gesamtmenge von Sekunden reduzieren.

Naive Lösung wird sein:

time_string = '12:65:84' 
hours, minutes, seconds = [int(i) for i in time_string.split(':') 
total_seconds = hours * 60 * 60 + minutes * 60 + seconds 

Frage: Wie es besser gemacht werden kann, im Idealfall ohne jeden Import zu verwenden, vielleicht mit einer Kombination aus map, reduce und ihren Freunden?

+1

Jedes Modul Datetime Sie die Zeit-String und Fehler für falsche Werte wirft wird analysieren bekommen. Dein Algorithmus funktioniert, was ist das Problem? – Trimax

+0

@Trimax, keine Probleme hier, nur Frage: "Wie geht es besser?". Vielleicht mit 'reduce' oder etwas – micgeronimo

+0

Mögliches Duplikat von [Wie konvertiert man eine H: MM: SS Zeit-Zeichenfolge in Python in Sekunden?] (Http://stackoverflow.com/questions/6402812/how-to-convert-an- hmmss-time-string-zu-sekunden-in-python) – Delgan

Antwort

1

Sie auch timedelta für die gleiche wie verwenden:

s='12:65:84' 
h,m,s=[int(i) for i in s.split(':')] 
t=timedelta(hours=h, seconds=s, minutes=m) 
res=t.total_seconds() 
Verwandte Themen