You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含元组的电影数组中查找带续集标识“2”的影片名称

查找带数字后缀"2"的同名影片实现方法

核心逻辑

从给定的元组数组中筛选出名称符合「原有影片名+数字2」格式的影片,关键验证两点:

  • 目标影片名以数字"2"结尾(含带空格的情况,比如"XX 2")
  • 去掉"2"后的基础名称存在于数组的影片名列表中

代码实现示例

假设我们有如下影片数组:

films = [("阿凡达", 9.0), ("泰坦尼克号", 9.4), ("阿凡达2", 8.5), ("流浪地球", 7.9), ("流浪地球2", 8.3), ("复仇者联盟 2", 8.1), ("复仇者联盟", 8.2)]

方法一:基础后缀匹配(直接加"2")

先提取所有影片名称,再遍历筛选符合条件的项:

# 提取所有影片名称到列表
all_film_names = [name for name, _ in films]

# 筛选以"2"结尾且基础名称存在的影片
target_films = [name for name, _ in films if name.endswith("2") and name[:-1] in all_film_names]

print(target_films)  # 输出: ['阿凡达2', '流浪地球2']

方法二:兼容带空格的后缀(如"XX 2")

如果存在带空格的后缀格式,可调整判断逻辑处理:

all_film_names = [name for name, _ in films]
target_films = []

for name, rating in films:
    # 处理两种常见格式:"XX2" 和 "XX 2"
    if name.endswith(" 2"):
        base_name = name[:-2].strip()
        if base_name in all_film_names:
            target_films.append(name)
    elif name.endswith("2"):
        base_name = name[:-1].strip()
        if base_name in all_film_names:
            target_films.append(name)

print(target_films)  # 输出: ['阿凡达2', '流浪地球2', '复仇者联盟 2']

扩展说明

如果需要处理更复杂的后缀(如"Part 2"、"II"),只需调整后缀的匹配规则即可,核心思路始终是验证基础名称的存在性。

内容的提问来源于stack exchange,提问作者Python_Slayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:25:21