获取两个date.time列表的值

时间:2016-12-29 21:18:52

标签: python python-3.x

有两个清单

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]

1 个答案:

答案 0 :(得分:1)

您可以使用列表理解并过滤掉A中未包含的值:

r = [val for date, val in B if date in A]
print(r)
# [12, 23, 70]

您最好可以A 设置以缩短每个日期的会员资格测试时间。

要获取匹配项的索引,您可以在列表推导中使用enumerate并收集索引而不是值。