先输入张三看过的电影名称建立集合a、再输入李四看过的电影名称建立集合b,要求:(1)筛选出两人均看过的电影建立集合c;(2)筛选出张三看过但李四没有看过的电影建立集合d。将集合c和集合d分别转换为列表,并按照电影名称升序排序后打印。python
时间: 2024-11-09 08:30:05 浏览: 19
为了实现这个需求,我们将分两步操作。首先,我们需要创建集合A和B来存储用户看过的电影信息。假设我们已经有了这两个集合,现在可以执行以下操作:
1. **筛选出两人均看过的电影(集合C)**
```python
from pymongo import MongoClient
# 假设已连接到数据库
client = MongoClient()
db = client['your_database']
profiling_collection = db.system.profile
# 查询两人看过的电影并合并
query_movies_a = { "username": "张三" }
query_movies_b = { "username": "李四" }
result_c = set(profiling_collection.find(query_movies_a).distinct('movie_name')) & set(profiling_collection.find(query_movies_b).distinct('movie_name'))
# 转换为列表并排序
movies_list_c = sorted(result_c)
```
2. **筛选出张三看过但李四没看过的电影(集合D)**
```python
# 张三独有的电影
unique_to_zhangsan = result_c.difference(set(profiling_collection.find(query_movies_b).distinct('movie_name')))
movies_list_d = sorted(unique_to_zhangsan)
collections = {"Collection C": movies_list_c, "Collection D": movies_list_d}
```
这里假设`profile`集合存储了用户的观影记录,每个文档都有`username`和`movie_name`字段。
阅读全文