【发布时间】:2014-05-27 18:29:13
【问题描述】:
我想在 Python 中的可分割迭代之间做一个笛卡尔积,我想指定迭代的顺序。
例如我有 3 个可迭代对象:'AB', 'xy', '01' 在我的示例中。写的时候
import itertools
print list(itertools.product('AB', 'xy', '01'))
('A', 'x', '0')
('A', 'x', '1')
('A', 'y', '0')
('A', 'y', '1')
('B', 'x', '0')
('B', 'x', '1')
('B', 'y', '0')
('B', 'y', '1')
我希望能够指定我想首先迭代可迭代 1 ('AB'),然后迭代可迭代 3 ('01'),然后可迭代 2 ('xy'),这将给出以下输出:
('A', 'x', '0')
('B', 'x', '0')
('A', 'x', '1')
('B', 'x', '1')
('A', 'y', '0')
('B', 'y', '0')
('A', 'y', '1')
('B', 'y', '1')
在 Python 中是否有任何标准方法可以做到这一点?我可以使用 Numpy。
【问题讨论】:
-
你为什么不按照你想要迭代的顺序传递迭代器?
-
@BrenBarn 每个元组的元素必须以某种方式排序。我想我可以在调用 itertools.product 后重新组织它们,但这听起来像是不必要的第二遍。
标签: python