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

如何将itertools.product生成的元组对按数值顺序正确排列

实现方法

有两种处理方案,可根据你的需求选择:

方案1:保留原product的顺序,仅对每个元组内部元素排序

如果你的期望输出是保留原始生成顺序,仅把每个元组的两个数值从小到大排列,直接遍历处理每个元素即可:

import itertools

CHs = [tuple(sorted(pair)) for pair in itertools.product(at_idx_map['H'], at_idx_map['C'])]

处理后输出和你给出的预期完全一致:
[(0, 1), (0, 6), (0, 11), (1, 5), (5, 6), (5, 11), (1, 10), (6, 10), (10, 11)]

方案2:元组内部排序后,对整个列表全局排序

如果需要整个列表的元组按先比第一个元素、再比第二个元素的规则全局升序排列,额外加一层全局排序即可:

import itertools

CHs = sorted(tuple(sorted(pair)) for pair in itertools.product(at_idx_map['H'], at_idx_map['C']))

处理后输出为严格升序的结果:
[(0, 1), (0, 6), (0, 11), (1, 5), (1, 10), (5, 6), (5, 11), (6, 10), (10, 11)]


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:03