我有以下一组元组:
('红', '热', '大'), ('红色', '热', '小'), (‘红’、‘冷’、‘大’), (“蓝色”、“热”、“大”)、 ('蓝色', '冷', '大'), ('绿色','热','大'), (‘绿色’、‘冷’、‘大’)
我想创建上述内容的紧凑表示,其中元组元素可以是允许值的列表。其目的是,给定这样的表示,人们可以通过应用笛卡尔积轻松生成原始元组列表。转换的结果可能如下所示:
('红', ['热', '冷'], '大'), ('红色','热','小'), (['蓝色', '绿色'], ['热', '冷'], '大')
我希望表示尽可能紧凑。你能推荐一种算法吗,最好是众所周知的算法?
塞奇威克有很好的。拿一份副本并放在手边(比 Knuth 更容易阅读)。