我有两个列表想要合并:
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)),
)
)
...这没关系,但我想知道是否有更好的方法来做到这一点。我还觉得应该有一种更数学的方式来表达我所描述的内容?也许
itertools
不是正确的库?
抱歉操之过急。 这是一种使用
itertools.product
的解决方案:
import itertools
lst1 = [['arg1', 'arg2']]
lst2 = ['arg3', 'arg4']
out = [sub_list + [element] for sub_list, element in itertools.product(lst1, lst2)]
print(out)
输出:
[['arg1', 'arg2', 'arg3'], ['arg1', 'arg2', 'arg4']]