-3

重複の可能性:
順序に関係なく、2 つのリストに同じ要素があるかどうかを判断しますか?
Python で文字の 2 つのリストを一致させる

私は listaと listを持っていますb。したがって、リストに等しい要素があるかどうかを見つける必要があります。わかりませんが、使用を考えていcollectionsます。

4

2 に答える 2

4

順序を気にしないと仮定します。ここにはいくつかのオプションがあります。最善の解決策は、リストの内容によって異なります。以下に、いくつかの可能性を優先 (および制限) 順に示します。

  • 重複がなく、すべてのアイテムがハッシュ可能である場合:

    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)
    
于 2012-11-05T22:25:06.510 に答える
0
>>> all(x in b for x in a)
于 2012-11-05T22:21:45.447 に答える