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

Python中如何生成元组列表的双元组展开排列结果?

解决方法

你需要的是从原列表中生成所有两个元组的有序排列,然后将每个排列里的两个元组拼接成一个四元素的扁平元组。之前用permutations(lis,4)是错误的,因为它会取出4个元组的排列,得到嵌套结构,而我们只需要2个元组的排列再展开。

具体实现代码

from itertools import permutations

# 原元组列表
lis = [ (1, 7), (1, 2), (1, 4), (7, 1), (7, 2), (7, 4), (2, 1), (2, 7), (2, 4), (4, 1), (4, 7), (4, 2) ]

# 生成所有两个元组的有序排列,再拼接成四元素元组
result = [t1 + t2 for t1, t2 in permutations(lis, 2)]

代码解释

  • permutations(lis, 2)会生成原列表中所有有序的两个元组组合(比如((1,7), (1,2))和((1,2), (1,7))会被视为两个不同的元素,完全符合你需要的排列要求)
  • 元组的+操作会直接拼接两个元组,比如(1,7) + (1,2)会得到(1,7,1,2),刚好是你需要的四元素扁平元组
  • 列表推导式会遍历所有排列组合,将每个组合拼接后收集成最终的结果列表

结果示例

生成的result列表开头会包含你提到的(1,7,1,2)、(1,2,1,4)等目标元组,且包含所有符合要求的排列展开结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:28:44