リスト[[1、2、7]、[1、2、3]、[1、2、3、7]、[1、2、3、5、6、7]]があり、[1 、2,3,7]最終結果として(これは一種のリバースエンジニアリングです)。1つのロジックは交差点をチェックすることです-
while(i<dlistlen):
j=i+1
while(j<dlistlen):
il = dlist1[i]
jl = dlist1[j]
tmp = list(set(il) & set(jl))
print tmp
#print i,j
j=j+1
i=i+1
これは私に出力を与えています:
[1, 2]
[1, 2, 7]
[1, 2, 7]
[1, 2, 3]
[1, 2, 3]
[1, 2, 3, 7]
[]
最終的な答えとして[1,2,3,7]を取得しようとしているようですが、その方法がわかりません。最初のリスト(([[1、2、7]、[1、2、3]、[1、2、3、7]、[1、2、3、5、6、7]]に注意してください]))[1,2,3,4]以外に、もう1つの最終的な答えにつながる項目がさらにある可能性があります。しかし、今のところ、[1,2,3,7]だけを抽出する必要があります。これは一種の宿題ではないことに注意してください。私は自分のニーズに合った独自のクラスタリングアルゴリズムを作成しています。