交叉合并列表元素以获取Python中的元组列表

时间:2016-03-22 08:47:02

标签: python list tuples

我已经查看过这篇文章How to merge lists into a list of tuples in Python?,但它似乎不适合我的问题。

我想将多个列表合并在一起,以获得每个乘法的元组。 所以,让我们说:

listA = ['a', 'b', 'c', 'd']
listB = [ 1 ,  2 ,  3 ,  4 , 5 ]
listC = ['!', '?', '=']

列表的长度不同。 我想要的结果是:

result = [('a', 1, '!'), ('a', 1, '?'),  ('a', 1, '='),  ('a', 2, '!')...

据我所知,zip()函数只将两个元素连接到一个列表以及相同的索引,这不是我想要的。

1 个答案:

答案 0 :(得分:1)

使用itertools.product

>>> listA = ['a', 'b', 'c', 'd']
>>> listB = [ 1 ,  2 ,  3 ,  4 , 5 ]
>>> listC = ['!', '?', '=']
>>> result = list(itertools.product(listA, listB, listC))
>>> result[:5]
[('a', 1, '!'), ('a', 1, '?'), ('a', 1, '='), ('a', 2, '!'), ('a', 2, '?')]
>>>