我还有另一个关于从各种来源生成东西列表的问题。
更新:简化示例
我有一个变量列表
["a", "b", "c"]
和布尔值
[False, True].
现在我想要一个列表,其中变量列表的所有子序列与值列表交叉,因此对于每个条目,变量的子序列列表具有一组与每个可能值的对。
对于上面的列表,我会得到这个(这个场景的完整列表)。由于空列表不会与另一个列表配对得很好,我不在乎它是否是结果列表的一部分(以后可以轻松添加)。
[
[],
[("a", False)],
[("a", True)],
[("b", False)],
[("b", True)],
[("c", False)],
[("c", True)],
[("a", False), ("b", False)],
[("a", False), ("b", True)],
[("a", True), ("b", False)],
[("a", True), ("b", True)],
[("a", False), ("c", False)],
[("a", False), ("c", True)],
[("a", True), ("c", False)],
[("a", True), ("c", True)],
[("b", False), ("c", False)],
[("b", False), ("c", True)],
[("b", True), ("c", False)],
[("b", True), ("c", True)],
[("a", False), ("b", False), ("c", False)],
[("a", False), ("b", False), ("c", True)],
[("a", False), ("b", True), ("c", False)],
[("a", False), ("b", True), ("c", True)],
[("a", True), ("b", False), ("c", False)],
[("a", True), ("b", False), ("c", True)],
[("a", True), ("b", True), ("c", False)],
[("a", True), ("b", True), ("c", True)],
]
如果只是排列,则调用排列结合理解就足够了,但我不知道如何轻松获取子序列的列表。我可以在不同大小的列表上使用“调用排列+理解”方法,但这听起来不太优雅。
有没有直接的解决方案?