Объединить два списка в список кортежей с пользовательским условием
Я новичок в 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, чтобы сделать это? Ваша помощь будет благодарна.
1 ответ
Решение
>>> 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)]