假设我有列表[['a', 'b', 'c'], ['d', 'e'], ['1', '2']]
我想生成一个列表,其中第一个位置是第一个子列表中的任何值,第二个是 - 来自第二个等等。
所以,举几个例子:
['a', 'd', '1']
['b', 'd', '1']
['c', 'd', '1']
['a', 'e', '1']
['a', 'e', '2']
['b', 'e', '1']
['b', 'e', '2']
等
答案 0 :(得分:2)
你需要itertools.product()
返回inpur iterables的笛卡尔积:
>>> from itertools import product
>>> my_list = [['a', 'b', 'c'], ['d', 'e'], ['1', '2']]
# v Unwraps the list
>>> list(product(*my_list))
[('a', 'd', '1'),
('a', 'd', '2'),
('a', 'e', '1'),
('a', 'e', '2'),
('b', 'd', '1'),
('b', 'd', '2'),
('b', 'e', '1'),
('b', 'e', '2'),
('c', 'd', '1'),
('c', 'd', '2'),
('c', 'e', '1'),
('c', 'e', '2')]