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

如何用更简洁方式实现嵌套列表间元素的跨组配对?

更简洁的跨子列表元素配对实现方案

你可以用以下更简洁的方式实现,完全基于itertools库,无需依赖numpy:

import itertools

lst = [[1,2],[3,4],[5,6]]
result = []
# 遍历所有两两组合的子列表(顺序保持原列表中的先后关系)
for sublist1, sublist2 in itertools.combinations(lst, 2):
    # 生成两个子列表元素的所有配对,并添加到结果中
    result.extend([list(pair) for pair in itertools.product(sublist1, sublist2)])

print(result)

如果追求极致简洁,可以写成一行列表推导式:

import itertools

lst = [[1,2],[3,4],[5,6]]
result = [list(pair) for sublist1, sublist2 in itertools.combinations(lst, 2) for pair in itertools.product(sublist1, sublist2)]

实现逻辑说明

  • itertools.combinations(lst, 2):生成原列表中所有不重复的两两子列表组合,且组合顺序遵循原列表中子列表的先后位置(比如只会出现([1,2], [3,4]),不会出现([3,4], [1,2])),这正好符合你预期输出中没有反向配对的要求。
  • itertools.product(sublist1, sublist2):对每一组子列表组合,生成它们元素的所有可能配对,确保不会出现同一子列表内元素的配对。
  • 最后将所有配对收集到结果列表中,完全匹配你的预期输出。

这种写法比原代码更易读,也更贴合Python的惯用写法,同时避免了不必要的数组转换操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:22:01