有两个清单
A=[datetime.datetime(2007, 7, 25, 0, 0), datetime.datetime(2007, 7, 27, 0, 0), datetime.datetime(2007, 7, 30, 0, 0)]
B = [[datetime.datetime(2007, 7, 25, 0, 0) 12]
[datetime.datetime(2007, 7, 26, 0, 0) 19]
[datetime.datetime(2007, 7, 27, 0, 0) 23]
[datetime.datetime(2007, 7, 28, 0, 0) 24]
[datetime.datetime(2007, 7, 29, 0, 0) 58]
[datetime.datetime(2007, 7, 30, 0, 0) 70]
[datetime.datetime(2007, 7, 31, 0, 0) 75]
[datetime.datetime(2007, 8, 1, 0, 0) 100]]
如何仅为列表A的日期时间返回矩阵B的相应值? 结果可能是列表B的行数
[0,2,5]
或只是值
[12,23,70]
答案 0 :(得分:1)
您可以使用列表理解并过滤掉A
中未包含的值:
r = [val for date, val in B if date in A]
print(r)
# [12, 23, 70]
您最好可以A
设置以缩短每个日期的会员资格测试时间。
要获取匹配项的索引,您可以在列表推导中使用enumerate
并收集索引而不是值。