具有特定迭代顺序的坐标的乘积

时间:2019-05-24 10:07:09

标签: python cartesian-product

下面是常规使用itertools.product的代码段:

from itertools import product

arr = [1,2,3]
pairs = list(product(arr, arr))

# pairs = [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]

现在,我希望这些点的产生顺序可以通过以下方式对结果元组进行排序来实现:

sorted(pairs, key=lambda y:max(y))
# [(1, 1), (1, 2), (2, 1), (2, 2), (1, 3), (2, 3), (3, 1), (3, 2), (3, 3)]

我是否可以将这些数字输入到itertools.product中,以便按此顺序生成元组,或者在对itertools.product的结果进行迭代之后是否需要对这些对进行排序?

1 个答案:

答案 0 :(得分:0)

您可能可以使用自己修改的方法一次性实现这一目标。

with()

输出

  

[(1,1),(1,2),(2,1),(2,2),(1,3),(2,3),(3,1),(3,2 ),(3,3)]