いくつかのアルゴリズムを実行した後、次のようなリストが表示されます。
l = Set([(integer_4_digits, integer_n_digits], ..)
ex: l = Set([(1011, 123556), (1041, 424553), (1241, 464096), (1027, 589325), (1011, 432341), (1031, 423076)])
l = list(l) #all tuples must exist once. need to get items by index to match (perhaps?)
このリストの各タプルには、最初の項目に4桁の整数(正)があり、2番目の項目には別の正の整数があります。
私が欲しいのは:
(リストまたはタプルの)新しいリストを作成し、可能なすべての組み合わせが(リストまたはタプルで)グループ化され、クロスマッチングを使用します。これには、5番目(またはタプル+タプル+ブールの場合は3番目)の要素が含まれます。True
またはFalse
、新しく一致した2つの交差したタプルの最初の4桁の整数が同じであるかどうかによって異なります(例:1011 == 1011
so Bool = True
)。
したがって、このプロセスの後、次のようなものを取得したいと思います。
new_list = [(l[0], l[1], False), (l[0], l[2], False), (l[0], l[3], False), (l[0], l[4], True) ..
(l[1], l[2], False), (l[1], l[3], False), (l[1], l[4], False), ..
(l[2], l[3], False), (l[2], l[4], False), (l[2], l[5], False), ..]
ご覧のとおりnew_list
、重複一致は含まれていません。(一度だけl[0]
一致します。一致するタプルがa to beであるか、b to a( )または()l[1]
であるかは関係ありません。l[0],l[1],..
l[1],l[0],..
これで、ネストされたfor e in l
ループを使用して最後のe
要素をポップe[0]
し、boolのチェックを実行し、新しいタプル(またはリスト)を作成してnew_list
リストに追加することで、これを実現できます。
では、どうすればこれを行うことができますか?どうすればいいですか?