2016-12-29 22 views
0

的值有兩個列表得到兩個date.time名單

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]] 

它是如何返回矩陣B的coresponing值列表A的只有date.times? 其結果可能是B名單中排

[0,2,5] 

或僅值數

[12,23,70] 
+0

您的語法是否正確?我想它應該有日期時間值後的逗號(,)。 –

+0

'datetime.datetime(2007,7,25,0,0)12'是一個語法錯誤。他們是不同的項目?如果是這樣,你可以使用列表理解'[我爲我,(j,num)枚舉(B)如果j在A]' – Kasramvd

回答

1

可以使用列表理解並篩選出不包含在A值:

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

您可以優選地製造A a 減少每個日期的會員資格測試時間。

要獲得匹配項的索引,您可以在列表理解中使用enumerate並收集索引而不是值。