按数字顺序排列 itertools 产品

Posted

技术标签:

【中文标题】按数字顺序排列 itertools 产品【英文标题】:Arrange itertools product in numerical order 【发布时间】:2021-12-02 12:12:44 【问题描述】:

我有一个由 itertools 通过以下方式完成的产品:

CHs=list(itertools.product(at_idx_map['H'], at_idx_map['C']))

获取 CH 的以下输出:

[(0, 1), (0, 6), (0, 11), (5, 1), (5, 6), (5, 11), (10, 1), (10, 6), (10, 11)]

但是我需要按数字顺序排列对,我想要的输出是:

[(0, 1), (0, 6), (0, 11), (1,5), (5, 6), (5, 11), (1, 10), (6, 10), (10, 11)]

有人对此有什么建议吗:

【问题讨论】:

内置的sorted()怎么样? 【参考方案1】:

在收到的每件商品上应用sorted

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

替代方案:

CHs=list(map(tuple, map(sorted, itertools.product(at_idx_map['H'], at_idx_map['C']))))

【讨论】:

这回答了你的问题吗?

以上是关于按数字顺序排列 itertools 产品的主要内容,如果未能解决你的问题,请参考以下文章

Python Itertools 仅排列字母和数字

用单词和数字按字母顺序排列字符串

简单数据结构

打印给定列表中包含1,2,3的所有数字,不一定按顺序排列

excel Median 在数字没有按顺序排列的情况下、怎么用Excel求中位数呀?急!!!!

没有 itertools 的两个值的排列(使用递归!)