Объединить два списка в список кортежей с пользовательским условием

Я новичок в 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)]
Другие вопросы по тегам