如何获取不同对象(列表或 str)的所有可能组合



这更像是一个一般性问题,我不确定是否存在任何算法,以及它是否存在所谓的......

假设我们有三个对象(列表(

["object", 1 , "this is object one"]
["object2", 2 , "this is object one"]
["object3", 3 , "this is object three"]

我现在要做的是创建具有所有可能组合的新列表,例如

["object2", 1 , "this is object three"]
["object1", 3 , "this is object two"]

甚至未来

[3, "object2", "this is object one"]
[1 , "this is object 2" , ] # last item removed as part of going for all combinations

所以我正在寻找一种在逻辑框架中混合/组合/添加/删除东西的算法。

我知道 python 有,但在 itertools lib 和组合方法中,但它似乎没有提供所有组合。

对象之间的路径和组合是否有任何已知的算法/库?

谢谢

你似乎不想要组合。你想要笛卡尔乘积,可能还有排列(从你的描述中有点不清楚(。对于笛卡尔乘积,您需要执行以下操作

itertools.product([
('object1', 'object2', 'object3'),
(1, 2, 3),
('this is 1', 'this is 2', 'this is 3')
])

对于问题的第二部分,在上一个示例构建的列表的每个元素上,您可以使用itertools.permutations

相关内容

  • 没有找到相关文章

最新更新