Python:获取具有日期和值的列表的最近日期和相同大小的列表

时间:2016-09-30 08:16:51

标签: 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的第一个列表和第二个列表的最近日期。

e.g。

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

这是我的代码:

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

但是我列出了不同大小的列表。

1 个答案:

答案 0 :(得分:-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]]