2

タプルの異なるリストのセットを次々と重複排除しようとしています。リストは次のようになります。

A = [
     (('X','Y','Z',2,3,4), ('A','B','C',5,10,11)),
     (('A','B','C',5,10,11), ('X','Y','Z',2,3,4)),
     (('T','F','J',0,1,0), ('H','G','K',2,8,7)),
     ...                                          ]

B = [
     (('X','Y','Z',0,0,0), ('A','B','C',3,3,2)),
     (('A','B','C',3,3,2), ('X','Y','Z',0,0,0)),
     (('J','K','L',5,4,3), ('V','T','D',5,10,12)),
     ...                                          ]

私は実行しています(例:リストAの場合):

from collections import OrderedDict
values = [[x,y] for x, y in OrderedDict.fromkeys(frozenset(x) for x in A)]

そして私は得るでしょう:

 A = [
     (('X','Y','Z',2,3,4), ('A','B','C',5,10,11)),
     (('T','F','J',0,1,0), ('H','G','K',2,8,7)),
     ...                                         ]

ただし、B について繰り返すと、最初のタプルではなく 2 番目のタプルが選択される可能性があります。

B = [
     (('A','B','C',3,3,2), ('X','Y','Z',0,0,0)),
     (('J','K','L',5,4,3), ('V','T','D',5,10,12)),
     ...                                         ]

理想的には、B は次のようになります。

B = [
     (('X','Y','Z',0,0,0), ('A','B','C',3,3,2)),
     (('J','K','L',5,4,3), ('V','T','D',5,10,12)),
     ...                                          ] 

A、B などのフロートの連結を取得するためにそれらを使用するため、文字列のシーケンスに対してそれらが同じである必要があります。重複排除リストの選択アプローチを一定に保つ方法があるかどうかを知りたいです。ありがとう!

4

1 に答える 1