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

如何基于电影-演员字典生成演员-合作演员映射字典?

生成合作演员字典的解决方案

给定一个结构为「电影名: 参演演员集合」的字典,示例输入如下:

movie_dict = {
    'Sleepers': {'Brad Pitt', 'Kevin Bacon', 'Dustin Hoffman'}, 
    'Troy': {'Brad Pitt', 'Diane Kruger'}, 
    'Meet Joe Black': {'Brad Pitt', 'Anthony Hopkins'}, 
    'Oceans Eleven': {'Julia Roberts', 'Brad Pitt', 'George Clooney'}, 
    'Seven': {'Brad Pitt', 'Morgan Freeman'}
}

需要生成一个新字典,将每位演员作为键,对应值为该演员所有合作演员的集合(不含演员本人)。

解决代码

# 初始化合作演员字典
co_actors = {}

# 遍历每部电影的参演演员集合
for actors in movie_dict.values():
    # 处理当前电影里的每个演员
    for actor in actors:
        # 若演员未在结果字典中,先初始化空集合
        if actor not in co_actors:
            co_actors[actor] = set()
        # 把当前电影中除自己外的其他演员加入合作集合(自动去重)
        co_actors[actor].update(actors - {actor})

# 打印结果
for actor, partners in co_actors.items():
    print(f"{actor}: {partners}")

代码逻辑说明

  1. 先创建空字典co_actors用来存最终结果。
  2. 遍历原字典里每部电影的演员集合:
    • 对每个演员,先检查是否已在结果字典中,没有就初始化一个空集合。
    • 用集合差集actors - {actor}拿到当前电影里除该演员外的所有合作者,再通过update方法把这些合作者添加到该演员的集合中——集合会自动去重,不用担心同一合作者被重复添加。

运行结果示例

Brad Pitt: {'Kevin Bacon', 'Diane Kruger', 'Anthony Hopkins', 'Julia Roberts', 'George Clooney', 'Morgan Freeman', 'Dustin Hoffman'}
Kevin Bacon: {'Brad Pitt', 'Dustin Hoffman'}
Dustin Hoffman: {'Brad Pitt', 'Kevin Bacon'}
Diane Kruger: {'Brad Pitt'}
Anthony Hopkins: {'Brad Pitt'}
Julia Roberts: {'Brad Pitt', 'George Clooney'}
George Clooney: {'Brad Pitt', 'Julia Roberts'}
Morgan Freeman: {'Brad Pitt'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:54:22