您可以通过传递lambda表达式将列表推导与min方法结合使用.
from datetime import datetime
l1 = [ '09/12/2017', '10/24/2017' ]
l2 = [ '09/15/2017', '10/26/2017', '12/22/2017' ]
l1 = [min(l2, key=lambda d: abs(datetime.strptime(d, "%m/%d/%Y") - datetime.strptime(item, "%m/%d/%Y"))) for item in l1]
产量
['09/15/2017', '10/26/2017']
如果您想要更高效的解决方案,可以编写自己的插入排序算法.
def insertSortIndexItem(lst, item_to_insert):
index = 0
while index < len(lst) and item_to_insert > lst[index]:
index = index + 1
return lst[index]
l2 = sorted(l2, key=lambda d: datetime.strptime(d, "%m/%d/%Y"))
l1 = [insertSortIndexItem(l2, item) for item in l1]