将列表转换为元组对

时间:2015-10-29 15:03:16

标签: python

从列表中组合元组的Pythonic方法是什么?

e.g。 从:

a = [['A','B','C'], ['D', 'E', 'F']]

要:

[('A','D'), ('A', 'E'), ..., ('C', 'E'), ('C','F')]

2 个答案:

答案 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]]