我正在使用Python组织一个电影标题列表,用于学术作业。提交截止日期已过;我只是想了解它对未来的作用
代码如下:
movies = {
2005: ['Munich', 'Steven Spielberg'],
2006: ['The Prestige', 'Christopher Nolan'],
2006: ['The Departed', 'Martin Scorsese'],
2007: ['Into the Wild', 'Sean Penn'],
2008: ['The Dark Knight', 'Christopher Nolan'],
2009: ['Mary and Max', 'Adam Elliot'],
2010: ['The King\"s Speech', 'Tom Hooper'],
2011: ['The Artist', 'Michel Hazanavicius'],
2011: ['The Help', 'Tate Taylor'],
2012: ['Argo', 'Ben Affleck'],
2013: ['12 Years a Slave', 'Steve McQueen'],
2014: ['Birdman', 'Alejandro G. Inarritu'],
2015: ['Spotlight', 'Tom McCarthy'],
2016: ['The BFG', 'Steven Spielberg']
}
userInput = int(input('Enter a year between 2005 and 2016: \n'))
print(movies[userInput])
如果我选择只有一个条目的年份,print语句可以正常工作。如果用户输入'2006'应该会显示两个标题,但我只得到2006键的后一个值。我做错了什么
您可以按如下方式重新组织词典:
电影是一个元组
(title, director)
,年份条目是电影列表。 选择一年会给你一个电影列表然后,您可以通过迭代列表来提取标题或导演
键必须是字典的唯一项。因此,如果向词典中添加条目,它将覆盖使用相同密钥的任何条目
如果您坚持使用年份作为键(不知道您的作业是否出于某些奇怪的原因需要使用年份),则可以将条目放入如下列表中
但这需要一些额外的技术,比如使用
setdefault()
或defaultdict
(或者在添加新项之前手动检查密钥是否已经存在)注意,在我的示例中,我使用了类似元素集合的列表和不同元素集合(title/director)的元组。这可能是一个好习惯
相关问题 更多 >
编程相关推荐