次の 2 つのリストがあります。
lst1 = [('vr1', '635', '1'), ('vr1', '32', '1'), ('vr1', '784', '0.526'), ('vr1', '431', '1')]
lst2 = [('vr1', '635', '3'), ('vr1', '784', '2.526'), ('vr1', '431', '2')]
lst1
現在、次のコードで何が一意であるかを判断しています。比較は、すべてのエントリの最初の 2 列の内容に基づいて行われます。
uniq = set([i[0:2] for i in lst1]).difference([j[0:2] for j in lst2])
与える:
set([('vr1', '32')])
次に、完全なエントリを取得するために、lst1
含まれている場合はすべてのエントリを検索します。uniq
uniq_full = [i for i in lst1 if i[0:2] in uniq]
これは、私が望む方法でエントリを返します。
[('vr1', '32', '1')]
私の質問は次のとおりです。完全なエントリを取得するより速い方法はありますか?