私は8つのオブジェクトのリストを持っており、番号は1から8です。8つのオブジェクトを3つのグループにまとめるPythonループ3-3-2
オブジェクトは、1つのボックスに3つ、別のボックスに3つ、最後のボックスに2つの3つのボックスに入れられます。数学では、これを行うには8C3 * 5C3 = 560通りあります。私はそこに560項目をループしたい。 Pythonでこれを行う方法はありますか? ['12','345','678']
と['12','354',876']
は、この目的のために同じと考えられていることを
list=['12','345',678'], ['12','346','578'], ..., etc.
注:
結果は次のようになります。
forループを作成したいと思います。 Pythonでこれを行う方法はありますか?
ここに私が得た解決策がありますが、それは醜いようです。
import itertools
for c1,c2 in itertools.combinations(range(8),2):
l2=list(range(8))
l2.pop(c2)
l2.pop(c1)
for c3,c4,c5 in itertools.combinations(l2,3):
l3=l2[:]
l3.remove(c5)
l3.remove(c4)
l3.remove(c3)
c6,c7,c8=l3
print(c1,c2,c3,c4,c5,c6,c7,c8)
どのように解決しようとしましたか?どのようなコードですか? – snapshoe
itertools http://docs.python.org/2/library/itertools.htmlで独自のロジックを追加できます。 – Pramod
私は本当にあなたの質問を理解していないと言わなければならない。 –