我有兩個清單。一個是日期時間假設串列:d(10000 個元素),一個是 int 假設串列:m(1000 個元素)。
我想生成一個新的日期時間串列,它是 d 的 m 分鐘的班次。
更直觀地說,我正在嘗試執行以下代碼:
[x datetime.timedelta(minutes = y) for x in d for y in m]
問題是上述雙回圈的速度很慢。有沒有更快的處理方法?謝謝。
uj5u.com熱心網友回復:
為了減少時間,只需重復使用datetime.timedelta(minutes=y). 例如,用運行時間交換一點空間。
M = [ datetime.timedelta(minutes=y) for y in range(1000)] # trade space
[x y for x in d for y in M] # save time
例子:
import datetime,time
d = [ datetime.date(2022, 10, _%30 1 ) for _ in range(10000)]
m = [ _ for _ in range(1000) ]
M = [ datetime.timedelta(minutes = y ) for y in range(1000)]
start_time = time.time()
[x datetime.timedelta(minutes = y) for x in d for y in m]
print("from time: {}".format(time.time() - start_time))
start_time = time.time()
result = [x y for x in d for y in M]
print("to time: {}".format(time.time()-start_time))
輸出:
from time: 7.302632093429565
to time: 0.6205151081085205
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516252.html
標籤:Python约会时间
