写出假设已有若千用户名字及其喜欢的电影清单,现有某用户已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好的代码
时间: 2024-09-20 16:01:13 浏览: 21
假设你有一个名为`User`的类,其中包含用户的姓名`name`和他们喜欢的电影列表`favoriteMovies`,以及一个表示用户观看状态的类`WatchedMovie`。为了帮助用户找到新电影,你可以创建一个推荐系统,如下所示:
```python
class User:
def __init__(self, name):
self.name = name
self.favorite_movies = []
class WatchedMovie:
def __init__(self, title):
self.title = title
def recommend_movies(user, all_movies, watched_movies):
user_watched = [movie.title for movie in user.favorite_movies if isinstance(movie, WatchedMovie)]
# 筛选出用户未观看过的电影
unseen_movies = [movie for movie in all_movies if movie not in user_watched]
# 可能的推荐策略:基于热门、评分或相似度等,这里仅提供简单随机推荐
if unseen_movies:
recommended_movie = random.choice(unseen_movies)
else:
recommended_movie = "抱歉,您已经看过大部分电影了。或许可以查看最新的或高评分的作品?"
return recommended_movie
# 示例用法
all_movies_list = ["阿甘正传", "星际穿越", "盗梦空间", "泰坦尼克号"] # 假设这是所有可用的电影
john = User("约翰") # 假设John喜欢的电影
john.favorite_movies.append(WatchedMovie("阿甘正传")) # John已看过的电影
recommended_movie = recommend_movies(john, all_movies_list, john.favorite_movies)
print(f"{john.name},推荐你看:{recommended_movie}")
```
在这个代码中,我们首先获取用户已观看的电影标题,然后从所有电影中排除这些已看过的电影。接着,我们可以随机选择一个尚未观看的电影作为推荐。当然,实际应用中可能需要更复杂的推荐算法,例如基于协同过滤或者内容分析。