回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个列表,上面有这样的日期:</p>
<pre><code>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)]
</code></pre>
<p>我有一本日期如下的字典:</p>
<pre><code>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)]}
</code></pre>
<p>我想将列表与字典进行比较,如果列表中的值与字典中的值匹配,则应该打印不可用。你知道吗</p>
<p>我有以下工作:</p>
<pre><code>for val in listdates:
if val in dictdates['S1']:
print val, 'unavailable'
else:
print val, 'available'
</code></pre>
<p>这将产生以下输出:</p>
<pre><code>2016-04-23 unavailable
2016-04-24 unavailable
2016-04-25 unavailable
2016-04-26 unavailable
2016-04-27 unavailable
</code></pre>
<p>相反,我希望遍历字典中的每个列表,并输出带有available/unavailable的键,如下所示:</p>
<pre><code>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 ...
</code></pre>