Python从电影字典列表中获取最高评分影片信息的方法
如何找出电影列表中评分最高的影片?
嘿,这个问题其实很容易解决,Python里的max()函数刚好能帮上大忙!咱们直接看解决方案:
基础解决方案(找出单部最高分影片)
首先,我们可以利用max()函数的key参数,指定按照字典里的cijfer(评分)字段来比较大小:
movies = [ {"titel": "The Godfather", "jaar": 1972, "cijfer": 9.2, "regisseur": "Francis Ford Coppola"}, {"titel": "The Shawshank Redemption", "jaar": 1994, "cijfer": 9.3, "regisseur": "Frank Darabont"}, {"titel": "Schindler's List", "jaar": 1993, "cijfer": 8.9, "regisseur": "Steven Spielberg"}, {"titel": "Raging Bull", "jaar": 1980, "cijfer": 8.2, "regisseur": "Martin Scorsese"}, {"titel": "Casablanca", "jaar": 1942, "cijfer": 8.5, "regisseur": "Michael Curtiz"} ] # 找出评分最高的电影字典 top_movie = max(movies, key=lambda movie: movie["cijfer"]) # 打印标题和评分 print(f"评分最高的影片:{top_movie['titel']},评分:{top_movie['cijfer']}")
运行这段代码后,输出会是:
评分最高的影片:The Shawshank Redemption,评分:9.3
补充:如果有多部影片评分相同怎么办?
如果你的列表里存在多部评分并列最高的电影,上面的方法只会返回其中一部。要是想找出所有最高分影片,可以这样做:
# 先拿到最高评分值 highest_rating = max(movie["cijfer"] for movie in movies) # 筛选出所有评分等于最高分的电影 top_movies = [movie for movie in movies if movie["cijfer"] == highest_rating] # 遍历打印结果 print("评分最高的影片有:") for movie in top_movies: print(f"- {movie['titel']},评分:{movie['cijfer']}")
简单解释一下
max(movies, key=lambda movie: movie["cijfer"]):这里的lambda是一个匿名函数,告诉max()函数,每个电影的比较依据是它的cijfer字段值。- 列表推导式
[movie for movie in movies if movie["cijfer"] == highest_rating]:遍历整个电影列表,把所有评分等于最高分的电影筛选出来。
这样就能轻松解决你的问题啦!
内容的提问来源于stack exchange,提问作者Matthijs Abma
相关产品推荐
相关产品推荐

