与えられた 2 つの入れ子になったリスト (各リストに一意の項目を含む) から新しい入れ子になったリストを作成して、新しい入れ子になったリストが両方のリストの最大の共通部分になるようにしたいと考えています。
例が私の質問を明確にするのに役立つことを願っています:
old1 = [[1,2],[3,4,5],[6,7,8],[9]]
old2 = [[1,2,3],[4,5,7],[6,8,10]]]
new = [[1,2],[3],[4,5],[6,8],[7],[9],[10]]
順序は重要ではないため、セットを使用すると便利な場合があります。
誰かアイデアがありますか?どんな助けでも大歓迎です!
__
わかりましたので、明らかに、最大公交点を取得する最も簡単な方法は次のとおりです。
new1 = filter(None,[list(set(o1) & set(o2)) for o1 in old1 for o2 in old2])
print new1
[[1, 2], [3], [4, 5], [7], [8, 6]]
古いリストの 1 つにのみ表示される整数を含めたい場合は、後で追加できます。
a,b = set(sum(old1, [])), set(sum(old2, []))
c = (a | b) - (a & b)
for d in c:
new1.append([d])
助けてくれてありがとう!