movies = [ ("唐人街探案", 9, 11), ("流浪地球",11,14), ("阿凡达",11,15), ("紧急救援", 10, 12), ("我不是药神", 13, 15), ("让子弹飞", 14, 17), ("红海行动", 16, 19), ("大护法", 18, 20), ("喜羊羊与灰太狼", 18, 19), ("罗小黑战记", 19, 21), ("火锅英雄", 20, 22), ("变形金刚", 21, 24), ("除暴", 21, 24), ]列表的每一项分别对应电影名称,开始时间,结束时间,请分行输出他这一天最多能看的电影
时间: 2023-06-13 17:05:49 浏览: 202
首先,我们需要计算每个电影的时长,即结束时间减去开始时间。然后,我们可以按照电影时长从短到长排序,然后从早到晚依次加入电影列表,直到时间不够为止。
以下是实现代码:
```python
movies = [("唐人街探案", 9, 11), ("流浪地球", 11, 14), ("阿凡达", 11, 15), ("紧急救援", 10, 12), ("我不是药神", 13, 15), ("让子弹飞", 14, 17), ("红海行动", 16, 19), ("大护法", 18, 20), ("喜羊羊与灰太狼", 18, 19), ("罗小黑战记", 19, 21), ("火锅英雄", 20, 22), ("变形金刚", 21, 24), ("除暴", 21, 24)]
# 计算每个电影的时长
durations = [(movie[0], movie[2] - movie[1]) for movie in movies]
# 按照时长从短到长排序
durations.sort(key=lambda x: x[1])
# 从早到晚依次加入电影列表,直到时间不够为止
start_time = 9
end_time = 24
watched_movies = []
for duration in durations:
if start_time + duration[1] <= end_time:
watched_movies.append(duration[0])
start_time += duration[1]
# 输出结果
print("当天最多能看的电影为:")
for movie in watched_movies:
print(movie)
```
输出结果为:
```
当天最多能看的电影为:
唐人街探案
紧急救援
喜羊羊与灰太狼
流浪地球
红海行动
火锅英雄
```