Python 循环列表以按行创建笛卡尔乘积

Python 循环列表以按行创建笛卡尔乘积,python,pandas,loops,product,cartesian,Python,Pandas,Loops,Product,Cartesian,我想通过跨多个列表的叉积来扩展我的行。我目前使用的逻辑是: list = [['Yes', 'No', 'Maybe'], ['Yes', 'No', 'Maybe']] index = pd.MultiIndex.from_product(list, names = ["column1", "column2"]) pd.DataFrame(index = index).reset_index() 不幸的是,这将不适用于多个列表。我怎样才能运行笛卡尔积,它看起来像这样: [[[

我想通过跨多个列表的叉积来扩展我的行。我目前使用的逻辑是:

list = [['Yes', 'No', 'Maybe'], ['Yes', 'No', 'Maybe']]
    index = pd.MultiIndex.from_product(list, names = ["column1", "column2"])
    pd.DataFrame(index = index).reset_index()
不幸的是,这将不适用于多个列表。我怎样才能运行笛卡尔积,它看起来像这样: [[['Yes'、'No'、'Maybe']、['Yes'、'No'、'Maybe']、[[[Yes'、'No'、'Maybe']、['Yes'、'No'、'Maybe']] 仍然只运行两列。我希望生成18(2*(3^2))的叉积。

允许您从任意数量的iterables创建笛卡尔积:

itertools.product(*lst)

你能用你想要的预期输出更新这个问题吗?预期输出将是有用的预期输出,并且使每个列表不完全相同将极大地帮助人们理解18种产品应该来自哪里。也许您正在为lst中的x寻找
[[*itertools.product(*x)]
他们主要感兴趣的是,我在一个列表中嵌套了两个列表。我怎样才能在每个列表上单独运行上面包含的代码,并在最后附加它们?请查看并提供示例输入和输出,因为您的问题的措辞不清楚您实际需要完成什么,
itertools.product
pd.MultiIndex.from\u product
给出了几乎相同的结果。