【发布时间】:2019-03-31 13:23:07
【问题描述】:
假设我有一个像这样的元组列表的输入:
[('a', True),
('b', False),
('c', True),
('d', False)]
每个以True 作为第二个参数的元组都被认为是可选的。
- 列表中元组的数量是任意的
- 第一个值的值是任意的,必须保留
现在我想通过以下方式排列这个结构:
- 输出应该是一个元组列表
- 每个元组列表都是唯一的
- 列表区分是否存在的可选元组
-
False的元组不会改变(消失) - 列表中元组的顺序不会改变
- 元组的顺序没有改变
- 元组列表可以按任意顺序排列
因此,上述示例的输出应如下所示:
[[('a', True),
('b', False),
('c', True),
('d', False)],
[('b', False),
('c', True),
('d', False)],
[('a', True),
('b', False),
('d', False)],
[('b', False),
('d', False)]]
任何想法如何以优雅的方式解决这个问题?我尝试了递归,但我无法成功。
【问题讨论】:
标签: python algorithm list recursion tuples