回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个问题,从一个综合字典和列表拉。我知道如何从每一个单独拉钥匙,但我需要把他们结合起来,从两个拉钥匙。下面是列出年份的词典示例。每年都有一个头衔和与之相关的董事</p>
<pre><code>movie_collection = {
2005: {'Title':'Munich','Director':'Steven Spielberg'},
2005: {'Title':'The Prestige','Director':'Christopher Nolan'},
2006: {'Title':'The Departed','Director':'Martin Scorsese'},
2007: {'Title':'Into the Wild','Director':'Sean Penn'},
2008: {'Title':'The Dark Knight','Director':'Christopher Nolan'},
2009: {'Title':'Mary and Max','Director':'Adam Elliot'},
2010: {'Title':'The King''s Speech','Director':'Tom Hooper'},
2011: {'Title':'The Artist','Director':'Michel Hazanavicius'},
2011: {'Title':'The Help','Director':'Tate Taylor'},
2012: {'Title':'Argo','Director':'Ben Affleck'},
2013: {'Title':'12 Years a Slave','Director':'Steve McQueen'},
2014: {'Title':'Birdman','Director':'Alejandro G. Inarritu'},
2015: {'Title':'Spotlight','Director':'Tom McCarthy'},
2016: {'Title':'The BFG','Director':'Steven Spielberg'}
</code></pre>
<p>}</p>
<p>我还有代码提示输入年份在2005年和2016年之间。如果年份不在这两个年份之间,它将打印一个N/a</p>
<pre><code>input_year = int(input('Enter a year between 2005 and 2016:\n'))
if input_year < 2005:
print('N/A')
elif input_year > 2016:
print('N/A')
else:
print(input_year)
</code></pre>
<p>现在我遇到了一个问题。在else声明之后,我还需要打印与输入年份相关的电影的标题和导演。例如,如果输入2011年,则输出需要为:</p>
<p>请输入2005年到2016年之间的年份:
2011
艺术家Michel Hazanavicius
救命啊,泰特·泰勒</p>
<p>我编写了以下代码</p>
<pre><code>if input_year in movie_collection:
for Title,Director in movie_collection.values():
print(Title,',',Director)
</code></pre>
<p>但是它没有输出正确的信息</p>
<pre><code>Enter a year between 2005 and 2016:
2011
Director , Title
Director , Title
Director , Title
Director , Title
...
</code></pre>
<p>我试着用多种方式列出它,但它不能正确地提取信息。我对python还是个新手,我确实尝试过google和bing,但在我寻找的信息上却一无所获。有人能给我指出正确的方向吗?我把字典写错了吗?或者我只是没有用正确的方式打印信息。谢谢</p>