首页 > 解决方案 > Python:编写函数来检查列表并返回值或无

问题描述

我真的很难掌握python并弄清楚如何回答以下问题:

1) 接受电影列表和类别名称。如果该类别不在数据中,则打印一条消息,说明它不存在并返回 None。

这是它正在查看的列表:

movies = [
{
"name": "Usual Suspects", 
"imdb": 7.0,
"category": "Thriller"
},
{
"name": "Hitman",
"imdb": 6.3,
"category": "Action"
},
{
"name": "Dark Knight",
"imdb": 9.0,
"category": "Adventure"
},
{
"name": "The Help",
"imdb": 8.0,
"category": "Drama"
},
{
"name": "The Choice",
"imdb": 6.2,
"category": "Romance"
},
{
"name": "Colonia",
"imdb": 7.4,
"category": "Romance"
},
{
"name": "Love",
"imdb": 6.0,
"category": "Romance"
}
]

这是我到目前为止的代码,但它只返回每个不匹配的匹配和打印,这不是我想要的:

def incat(cat):  
    for m in movies:  
        if m['category'] == cat:  
            print(m['name'])  
        else:  
            print(cat + ' does not exist')  

incat('Romance')

我可能真的错过了一些非常简单的东西,但我发现很难把头绕起来。非常感谢任何帮助。

标签: pythonlist

解决方案


您可以使用列表推导列出与您的类别相关的所有信息:

def in_cat(cat):
    new = []
    result = [i for i in movies if i['category'] == cat]
    new.append(result)
    print(new)


in_cat('Thriller')

输出:

[[{'name': 'Usual Suspects', 'imdb': 7.0, 'category': 'Thriller'}]]

推荐阅读