从列表中组合元组的Pythonic方法是什么?
e.g。 从:
a = [['A','B','C'], ['D', 'E', 'F']]
要:
[('A','D'), ('A', 'E'), ..., ('C', 'E'), ('C','F')]
答案 0 :(得分:2)
使用itertools.product
。如果您有列表列表,请使用" splat"运算符*
,以解压缩它们。 product
需要任意数量的迭代:
>>> a = [['A', 'B'], ['C', 'D'], ['E', 'F']]
>>> list(itertools.product(*a))
[('A', 'C', 'E'),
('A', 'C', 'F'),
('A', 'D', 'E'),
('A', 'D', 'F'),
('B', 'C', 'E'),
('B', 'C', 'F'),
('B', 'D', 'E'),
('B', 'D', 'F')]
答案 1 :(得分:0)
使用列表理解:
[(x,y) for x in a[0] for y in a[1]]