我在另一個應用程式中使用 Python 2.7。我有以下格式的時間戳串列。串列的長度因任務而異:
['23:05:26', '23:05:28', '23:05:30', '23:05:32']
使用datetime我想在這個串列上運行一些基本的數學運算timedelta
到目前為止,我已經成功地在兩個單獨的時間戳上運行了該操作,但是我找不到在串列上迭代相同函式的正確語法和/或方法。
我的基本功能是
def TS(x):
z1 = datetime.strptime(x, '%H:%M:%S')
z2 = timedelta(hours=z1.hour,minutes=z1.minute,seconds=z1.second)
當字串轉換為timedeltas 時,我計劃執行以下計算(但不確定它是否應該與設定 s 在同一回圈中timedelta):
x[-1] - x[-2], x[-2] - x[-3], ...
然后將這些計算中的每一個的結果存盤為字串,使用str(ResultOfTimeCalc),也存盤為秒,我想我應該使用ResultOfTimeCalc.seconds.
我如何格式化這一切,需要在回圈中完成什么,以及如何在回圈中迭代一個函式?
uj5u.com熱心網友回復:
無需timedelta顯式呼叫。您可以減去兩個datetime物件以獲得差異作為timedelta.
>>> times = ['23:05:26', '23:05:28', '23:05:30', '23:05:32']
>>> from datetime import datetime
>>> tses = [datetime.strptime(x, '%H:%M:%S') for x in times]
>>> [y - x for x, y in zip(tses, tses[1:])]
[datetime.timedelta(seconds=2), datetime.timedelta(seconds=2), datetime.timedelta(seconds=2)]
uj5u.com熱心網友回復:
(最后)編輯:如何設定 numpy 以相反的順序排列串列(最舊的在前)。
編輯:我將它與 TS(x) 函式結合起來以秒為單位輸出 timedeltas。
如果“x”是時間戳串列,則計算相鄰時間點之間的差異,從最近的時間點到第一個時間點:
time_deltas = [(datetime.datetime.strptime(x[index], '%H:%M:%S') - datetime.datetime.strptime(x[index - 1], '%H:%M:%S')).seconds for index in np.arange(1, len(x), 1)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378307.html
標籤:Python python-2.7 约会时间 时间增量
