【发布时间】:2019-05-13 13:38:11
【问题描述】:
我想以特定方式和特定顺序生成子列表。
算法的思路如下:
- 外循环:删除最后一项之前
- 内循环:删除第一项
这是一个以[A, B, C ,D] 列表开头的示例:
[A, B, C, D]
[B, C, D] (remove first item)
[C, D] (remove first item)
[A, B, D] (remove before last item)
[B, D] (remove first item)
[A, D] (remove before last item)
[D] (remove before last item)
我唯一的限制是仅包含最后一项的长度为 1 的子列表必须是最后生成的子列表。
我没有任何困难以天真的迭代方式实现这个算法。但我强烈希望以更 Python 的方式来做,比如使用列表推导或 itertools 库。
有什么建议吗?
【问题讨论】:
标签: python python-3.x algorithm list itertools