下記のように、6種類のリストに文字列が60個ずつ入っています。
List1A=[“1a1”, “1a2”…”1a60”] List1B=[“1b1”, “1b2”…”1b60”] List1C=[“1c1”, “1c2”…”1c60”] List2A=[“2a1”, “2a2”…”2a60”] List2B=[“2b1”, “2b2”…”2b60”] List2C=[“2c1”, “2c2”…”2c60”]
これらをぞれぞれrandom.shuffle()シャッフルし、さらに9つの組み合わせリストに分配していきます。
list1A2A=[(1a1, 2a10), (1a15, 2a39)…] list1A2B=[…] list1A2C=[…] list1B2A=[…] list1B2B=[…] list1B2C=[…] list1C2A=[…] list1C2B=[…] list1C2C=[…]
その際、上記のように2つのリストの組み合わせとして、6つのリストからそれぞれ20個ずつ文字列を取り出していき、新しいリストにペアで格納します。例えば、list1A2Aにはlist1Aから20個、list2Aから20個、のようにです。その際、文字列は重複しません。そして9つのリストと、合計180の文字列の組み合わせができます。
その後、全てのペアを再度シャッフルしてまとめた、下記のような組み合わせ一覧 (リスト) を作成したいのです。
listAll = [[(1a1, 2a10), list1A2A], [(2b30, 1c15), list1C2B], [(1b55, 2b40), list1B2B], ... [(2c35, 1a3), list1A2C]]
この時、ペア文字列の最初の要素 (上記の1a1や2b30、1b55) にlist1Aから1Cの90個、要素2 (上記の2a10や1c15、2b40) にlist2Aからlist2Cの90個、と半分ずつになるよう分配したいのです。
再度シャッフルして、listAllにまとめると、ペア文字列の最初の要素が常にlist1A、list1B、list1Cのいずれかになってしまうため、180の文字列組み合わせで、半分はlist1系列、もう半分はlist2系列の要素が先頭になるように作ります。
初歩的な質問で恐縮ですが、ご教示いただければ幸いです。