我是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中的任何内置函数来做到这一点?您的帮助将不胜感激。
答案 0 :(得分:2)
>>> 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)]