2016-09-30 51 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

解决方案看起来正确。它为什么被低估? –