我有日期設置像這樣的列表:用字典和輸出真假對比清單
listdates = [datetime.date(2016, 4, 23), datetime.date(2016, 4, 24), datetime.date(2016, 4, 25), datetime.date(2016, 4, 26), datetime.date(2016, 4, 27)]
我有這樣設置日期的詞典:
dictdates = {'S1': [datetime.date(2016, 4, 20), datetime.date(2016, 4, 21), datetime.date(2016, 4, 22), datetime.date(2016, 4, 23), datetime.date(2016, 4, 24), datetime.date(2016, 4, 25), datetime.date(2016, 4, 26), datetime.date(2016, 4, 27), datetime.date(2016, 4, 28), datetime.date(2016, 4, 29)], 'W26': [datetime.date(2016, 4, 20), datetime.date(2016, 4, 21), datetime.date(2016, 4, 22), datetime.date(2016, 4, 23), datetime.date(2016, 4, 24), datetime.date(2016, 4, 25)], 'W24': [datetime.date(2016, 4, 25)]}
我想比較列表到字典,如果列表中的值與字典中的值匹配,則它應該打印不可用。
我有以下工作:
for val in listdates:
if val in dictdates['S1']:
print val, 'unavailable'
else:
print val, 'available'
這使輸出:
2016-04-23 unavailable
2016-04-24 unavailable
2016-04-25 unavailable
2016-04-26 unavailable
2016-04-27 unavailable
我想要什麼,而不是,是每一個列表,請在字典中的和輸出的關鍵可用/不可用的,就像這樣:
S1
2016-04-23 unavailable
2016-04-24 unavailable
2016-04-25 unavailable
2016-04-26 unavailable
2016-04-27 unavailable
W26
2016-04-23 unavailable
2016-04-24 unavailable
2016-04-25 unavailable
2016-04-26 unavailable
2016-04-27 unavailable
W24
2016-04-23 available
2016-04-24 available
2016-04-25 unavailable
2016-04-26 available
2016-04-27 available
etc ...
輕微改善:由於這是的Py2,使用'.iteitems()'或'.viewitems()'(後者僅在2.7中,但更接近Py3的.items()行爲),而不是'.items()',在Py2中,創建一個所有對的「列表」,而不是直接迭代「dict」。 – ShadowRanger