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

如何编写代码生成两次尝试中Offense列表的指定格式组合?

问题描述

给定以下字典:

dict_first_attempt = {'Offense': ['Jack','Jill','Tim'], 
'Defense':['Robert','Kevin','Sam']}
dict_second_attempt = {'Offense': ['Jack','McKayla','Heather'],
'Defense':['Chris','Tim','Julia']}

我们仅关注其中的Offense字段,可通过以下代码提取对应列表:

first = dict_first_attempt['Offense']
second = dict_second_attempt['Offense']

需要编写代码实现以下功能:

  • 列出第一次尝试Offense与第二次尝试Offense的所有可能组合
  • 以嵌套列表的形式输出结果
  • 每个子列表的第一个元素来自第一次尝试的Offense列表,第二个元素来自第二次尝试的Offense列表

期望输出示例:

[['Jack','Jack'],['Jack','McKayla'],['Jack','Heather'],
['Jill','Jack'],['Jill','McKayla'],['Jill','Heather'],
['Tim','Jack'],['Tim','McKayla'],['Tim','Heather']]
解决方案

方法1:嵌套循环实现

通过两层循环遍历两个列表,逐个组合元素并添加到结果列表:

first = dict_first_attempt['Offense']
second = dict_second_attempt['Offense']

result = []
for f in first:
    for s in second:
        result.append([f, s])

print(result)

方法2:使用itertools.product简化代码

Python标准库的itertools.product可直接生成两个可迭代对象的笛卡尔积,再将每个元组转为列表即可:

import itertools

first = dict_first_attempt['Offense']
second = dict_second_attempt['Offense']

result = [list(pair) for pair in itertools.product(first, second)]

print(result)

两种方法都能输出符合要求的嵌套列表,第二种方法更简洁高效,适合处理元素较多的列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:31:10