Pythonのセットとリストの唯一の違いは、ユニオン、インターセクト、差分、対称差分関数を使用して2つのセットを比較できるということですか?これらの関数を単純に適用できないのはなぜですか?リストはどのような状況でリストよりも便利ですか?
大きな違いがあります。
__contains__
_(in
演算子)がセットに対してはるかに効率的になります。set(([1],[2]))
を試してみると、TypeError
が得られます。実際のアプリケーションでは、リストは並べ替えと順序付けが非常に便利ですが、セットは重複を避け、順序を気にしない場合に使用できます。
順序などを気にしない場合は、使用できることに注意してください
_new_set = myset.intersection(mylist)
_
set
とlist
の共通部分を取得するため
設定
セットは、順序付けられておらずインデックスも付けられていないコレクションであり、重複は許可されていません。 Pythonでは、セットは中括弧で記述されます。
# example set
newset = {"one", "two", "three"}
リスト
リストは、順序付けられて変更可能なコレクションです。 In Pythonリストは角括弧で記述されています。
# example list
newlist =["one", "two", "three"]
いくつかの違いは次のとおりです。
hash function
を使用して要素を検索しますが、リストは配列です。したがって、Set
内の要素の検索は、list
内の要素よりも高速です。Setは、個別の要素のコレクションを表します。 Pythonでは、セットは主に次の2つの理由で使用されます(Book:Data Science from Scratch、Joel Gruce):
より高速な操作:inは、セットに対する非常に高速な操作です。要素の大きなコレクションがあり、メンバーシップテストを実行する場合、その場合はリストの代わりにsetを使用するのが適切です。
コレクション内の個別のアイテムを見つけるため。プログラマは、dictやlistよりもセットの使用頻度をはるかに低くしています。