次のように私がリストを持っている:Pythonとリスト要素のすべての組み合わせ、特定の順序で
((0,n1,n2,...,nX),(0,n1,n2,...,nY),(1,n1,n2,...,nZ),(2,n1,n2,...,nR),(2,n1,n2,...,nS))
私は、このような方法で、リスト要素のすべての可能な組み合わせを返すしたいと思います:
(0,n1,n2,...,nX),(1,n1,n2,...,nZ),(2,n1,n2,...,nR)
(0,n1,n2,...,nY),(1,n1,n2,...,nZ),(2,n1,n2,...,nR)
(0,n1,n2,...,nX),(1,n1,n2,...,nZ),(2,n1,n2,...,nS)
(0,n1,n2,...,nY),(1,n1,n2,...,nZ),(2,n1,n2,...,nS)
ので、私は、要素を繰り返し処理し、リスト要素の最初の要素をチェックして最初の要素で要素をグループ化する必要があることを理解し、解決しました。
私はおそらくforループをすることができますか?すべての組み合わせを手動で作成しようとしますか?
しかし、もっと良いアプローチがあるのでしょうか?
私は要素は要素の最初の項目で注文昇順でなければならないことを心に留めておく必要がある - > 0、1、2
EDIT:
これは、他の言葉で私のリストです:
(0,A),(1,C),(2,D)
(0,B),(1,C),(2,D)
(0,A),(1,C),(2,E)
(0,B),(1,C),(2,E)
を次のように返すためにどのように
((0,A), (0,B), (1,C), (2,D),(2,E))
?
あなたが何を求めているかははっきりしません。あなたは3要素の組み合わせが欲しいですか?タプルは不変ですか?それで、 '(0、n1、n2、...、nX)'は常に同じままですか?それはただの要素ですか?それから、より簡単な形で、例えば 'A'と書いてください。 – Thanassis
要素がリストであるリストがあります(サブリストと呼ばせてください)。各サブリストの最初の要素は一種のIDです。いくつかのサブリストは同じIDを有してもよく、そのうちのいくつかは特定のIDを有する唯一のサブリストであってもよい。あなたはID = 2のサブリストをいくつか持つことができます。 ID = 5のサブリストを1つだけ返します。同じIDを持つサブリストから1つのサブリストを選択して組み合わせに戻すような方法ですべての組み合わせを返すようにしたいのですが、次に選択したサブリストをスキップして、同じID範囲のサブリストから...それはそれをより明確にしますか? – user7583612
チェック例が提供されました...返された組み合わせには一意の最初の項目を持つ単一の要素があることがわかります。要素の最初の項目として値0を持つ各組み合わせに2つの項目はありません。 – user7583612