Как я могу создать продукт двумерного списка с одномерным списком (должен быть однострочным)?Python

Программы на Python
Anonymous
Как я могу создать продукт двумерного списка с одномерным списком (должен быть однострочным)?

Сообщение Anonymous »

У меня есть два списка, которые я пытаюсь объединить:

Код: Выделить всё

lst1 = [['arg1', 'arg2']]  # this can have more lists, but for simplicity, leaving it as this
lst2 = ['arg3', 'arg4']
Мне нужен продукт двух списков, чтобы продукт был:

Код: Выделить всё

[
['arg1', 'arg2', 'arg3'],
['arg1', 'arg2', 'arg4'],
]
Очевидно, я могу выполнить это в цикле и сделать это, но мне нужно иметь возможность сделать это в одну строку (у меня есть причины).
Я смог сделать это, выполнив следующие действия:

Код: Выделить всё

list(
map(
lambda l: list(itertools.chain.from_iterable(l)),
list(itertools.product(lst, lst2)),
)
)
edit: Я думаю, что приведенный выше ответ сработал для меня, когда я сопоставил список 1d, чтобы каждый элемент находился внутри списка, что очень некрасиво. например lst2 на самом деле был list(map(lambda a: [a], lst2))
... и это нормально, но мне интересно, есть ли лучший способ сделать это. Я также чувствую, что должен быть более математический способ выразить то, что я описываю? Может быть, itertools — не та библиотека?

Подробнее здесь: https://stackoverflow.com/questions/785 ... al-list-ne

Вернуться в «Python»