3

我是 python 新手,对 python 中的快捷方式不太了解。我有两个清单:

firstList = ['a','b','c']  and
secondList = [1,2,3,4]

我必须通过合并这些列表来制作一个元组列表,这样输出应该是这样的

[('a',1),('a',2),('a',3),('a',4),('b',1), ('b',2) .....]

一种简单的方法是通过

outputList = [] 
for i in firstList:
    for j in secondList:
        outputList.append((i,j))

这两个for循环让我很头疼。有没有更好的方法(复杂性更低)或python中的任何内置函数来做到这一点?您的帮助将不胜感激。

4

1 回答 1

3
>>> firstList = ['a','b','c']
>>> secondList = [1,2,3,4]
>>> from itertools import product
>>> list(product(firstList, secondList))
[('a', 1), ('a', 2), ('a', 3), ('a', 4), ('b', 1), ('b', 2), ('b', 3), ('b', 4), ('c', 1), ('c', 2), ('c', 3), ('c', 4)]

这里还有一个更好的使用列表理解的 for 循环版本:

>>> [(i, j) for i in firstList for j in secondList]
[('a', 1), ('a', 2), ('a', 3), ('a', 4), ('b', 1), ('b', 2), ('b', 3), ('b', 4), ('c', 1), ('c', 2), ('c', 3), ('c', 4)]
于 2013-05-27T13:45:13.140 回答