重複の可能性:
順序に関係なく、2 つのリストに同じ要素があるかどうかを判断しますか?
Python で文字の 2 つのリストを一致させる
私は lista
と listを持っていますb
。したがって、リストに等しい要素があるかどうかを見つける必要があります。わかりませんが、使用を考えていcollections
ます。
重複の可能性:
順序に関係なく、2 つのリストに同じ要素があるかどうかを判断しますか?
Python で文字の 2 つのリストを一致させる
私は lista
と listを持っていますb
。したがって、リストに等しい要素があるかどうかを見つける必要があります。わかりませんが、使用を考えていcollections
ます。
順序を気にしないと仮定します。ここにはいくつかのオプションがあります。最善の解決策は、リストの内容によって異なります。以下に、いくつかの可能性を優先 (および制限) 順に示します。
重複がなく、すべてのアイテムがハッシュ可能である場合:
set(a) == set(b)
重複があり、すべてのアイテムが同じタイプの場合:
sorted(a) == sorted(b)
重複があり、リストに型が混在している可能性があり、すべての型がハッシュ可能である場合:
collections.Counter(a) == collections.Counter(b)
重複がある場合、リストに型が混在している可能性があり、一部の要素はハッシュ可能ではない可能性があります (これを行うためのより良い方法があるはずですが、私が思いついたのは、各要素を文字列表現のタプルに変換することでした)タイプ、その後に値):
keyfunc = lambda x: (str(type(x)), x)
sorted(a, key=keyfunc) == sorted(b, key=keyfunc)
>>> all(x in b for x in a)