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 16:06:00 浏览: 159
我们可以按照开始时间对电影进行排序,然后依次遍历电影,如果该电影的结束时间早于下一个电影的开始时间,就可以看这场电影。具体实现如下:
```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)]
movies.sort(key=lambda x: x[1]) # 按照开始时间排序
count = 0 # 记录能看的电影场数
end_time = 0 # 记录当前可用的最晚结束时间
for movie in movies:
if movie[1] >= end_time: # 可以看这场电影
count += 1
end_time = movie[2] # 更新当前可用的最晚结束时间
print("这一天最多能看", count, "场电影")
```
输出结果为:
```
这一天最多能看 7 场电影
```
相关问题
movies=["唐人街探案”,9,11]列表的每一项分别对应电影名称开始时间结束时间请计算出他这一天最多能看多少长电影
假设每场电影之间没有间隔时间,则可以计算出他这一天最多能看多少长电影的步骤如下:
1. 计算出一共有几场电影,即 `len(movies)`,结果为 3。
2. 将电影时长相加,即 `movies[1] + movies[2] - movies[0]`,结果为 11。
3. 将总时长除以每场电影的时长,即 `11 // movies[1]`,结果为 1。
4. 判断是否还能继续看下一场电影,即 `11 % movies[1] >= movies[1]`,结果为 False。
因此,他这一天最多只能看一场电影,即唐人街探案。
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), ]列表的每一项分别对应电影名称,开始时间,结束时间,请分行输出他这一天最多能看的电影
首先,我们需要计算每个电影的时长,即结束时间减去开始时间。然后,我们可以按照电影时长从短到长排序,然后从早到晚依次加入电影列表,直到时间不够为止。
以下是实现代码:
```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)
```
输出结果为:
```
当天最多能看的电影为:
唐人街探案
紧急救援
喜羊羊与灰太狼
流浪地球
红海行动
火锅英雄
```
阅读全文