タイトルの説明が悪くてすみません。
次のような 2 次元リストを考えてみましょう。
list = [
[1, 2],
[2, 3],
[3, 4]
]
このリストのすべての可能な「垂直」の組み合わせを抽出すると、合計 2*2*2=8 の組み合わせになると、次のシーケンスになります。
1, 2, 3
2, 2, 3
1, 3, 3
2, 3, 3
1, 2, 4
2, 2, 4
1, 3, 4
2, 3, 4
ここで、これらのシーケンスの一部を削除するとします。位置 #1 に数字 2 または位置 #3 に数字 4 を持つシーケンスのみを保持したいとします。次に、これらのシーケンスが残ります。
2, 2, 3
2, 3, 3
1, 2, 4
2, 2, 4
1, 3, 4
2, 3, 4
問題
これらの残りのシーケンスを、すべてのシーケンスを含むために必要な最小限の量の 2 次元リストに再結合したいと思いますが、それ以下でもそれ以上でもありません。
そうすることで、この特定の例で得られる 2 次元リストは次のようになります。
list_1 = [
[2],
[2, 3],
[3, 4]
]
list_2 = [
[1],
[2, 3],
[4]
]
この特定のケースでは、結果のリストを考え出すことができます。しかし、数百の 2 次元リストを生成する数千のシーケンスがある場合、どうすればよいでしょうか? 2 週間にわたって優れたアルゴリズムを考え出そうとしていますが、満足のいく結果にはほど遠いものです。