リスト L の各要素は、(フィールド、サイズ) の形式のタプルです。例えば
L = [ (['A','B'], 5), (['A'], 6), ('C', 1)]
交差していないメンバーのみが含まれるようにリストを選別したいと思います。残りの各メンバーは、交差した可能性のある他のメンバーよりも大きくなりました。したがって、例のリスト L は次のように縮小されます。
L = [ (['A'], 6), ('C', 1)]
現在、私はそれを次のように実装しています:
def betterItem(x, y):
return (x != y and
set(x[0]) & set(y[0]) and
x[1] > y[1])
for i in range(len(L)-1):
L[:] = [x for x in L for y in L if betterItem(x, y)]
これを行うためのより良い/より高速な/よりPython的な方法はありますか?
助けてくれてありがとう!