2016-09-30 35 views
0

我試圖讓最近日期的名單列表(日期和值)的最新列表的Python:獲得與最近的日期和大小相同的名單與日期列表和值

有兩個列表:

[["20160901", 0.244], ["20160902", 0.232], ["20160906", 0.214], 
["20160909", 0.235], ["20160910", 0.244], ["20160911", 0.271],  
["20160912", 0.239], ["20160914", 0.25], ...] 

長度是X

和:

[["20160907", -9.39979076385498, -6.318868160247803], 
["20160913", -10.568793296813965, -6.815752029418945], ... ] 

長度爲Y

需要獲得第一個列表的長度是Y和第二個列表的最近日期。

例如

[["20160906", 0.214], ["20160912", 0.239], ...] 

這裏是我的代碼:

def nearest_date(dates, pivot): 
    return min(dates, key=lambda x: abs(x - pivot)) 

但我得到的名單不同的尺寸。

+1

嘗試在自己的第一個東西!向我們展示代碼。如果出現問題,我們可以幫助 –

+0

因爲0.239小於0.25,所以你選擇了'[「20160912」,0.239]'在'[「20160914」,0.25]'上。 –

+0

不關心價值觀。只需要獲取最近日期的列表,輸出列表必須與第二個列表相同。 – Sant

回答

-1
list_dates = [["20160901", 0.244], ["20160902", 0.232], ["20160906", 0.214], 
["20160909", 0.235], ["20160910", 0.244], ["20160911", 0.271],  
["20160912", 0.239], ["20160914", 0.25]] 

list_comp = [["20160907", -9.39979076385498, -6.318868160247803], 
["20160913", -10.568793296813965, -6.815752029418945]] 

[ min(list_dates, key = lambda x: abs(int(x[0])-int(p[0]))) for p in list_comp ] 

結果:

[['20160906', 0.214], ['20160912', 0.239]] 
+0

'list_comp]'list_z = [min(list_dates,key = lambda x:abs(int(x [0]) - int(p [0])))'然後'print list_z ' –

+0

@User_Targaryen打印結果。你想說啥 ? –

+0

解決方案看起來正確。它爲什麼被低估? –

相關問題