Pythonのリストとセットの違いは何ですか?


ベストアンサー

いくつかの重要な違いがあります:

  • インデックス作成-リストは整数(0から開始)でインデックスを付けることができます。セットにインデックスを付けることはできません(反復される場合を除いて、セットの最初のアイテムの概念はありません)。
  • スライス-リストをスライスできます([a:b]表記を使用)。 Pythonセットをスライスすることはできません。
  • コンテンツ-リストにはデータ項目の任意の組み合わせを含めることができます。セットには、ハッシュ可能なデータ項目のみを含めることができます(つまり、hash()関数は値を返します)。
  • 重複-リストには重複するデータ項目を含めることができます-の項目の回数に制限はありません。等しい値がリストに表示されます。セットに重複を含めることはできません。
  • 順序付け-リストは順序付けられます。つまり、リストを使用するプログラムによって決定された順序付けが保持されます。セットは順序付けられていません(最初、2番目などの概念はありません)。また、プログラマーがセットの反復、表示、またはその他の方法で提示される順序を制御する方法はありません。 (順序付けは並べ替えと同じではありませんが、セットも並べ替えることができません)。
  • membership-リストのメンバーシップテスト(「in」演算子)は、最初から次の線形検索です。最後;セットのメンバーシップテストは、最初に検索対象の値のhash()に基づいています。セットの検索は、同様のサイズのリストと比較すると、かなり効率的です。
  • その他の機能-リストには、リスト間の重複または相違に基づいて新しいリストを作成する動作がありません。一方、セットには、セット間の違いやオーバーアルプを識別するための無数の操作(およびメソッド)があります。

回答

セットは、リストや辞書に似たデータ構造です。これらは中括弧、または set 関数を使用して作成されます。 でを使用して特定のアイテムが含まれているかどうかを確認するなど、一部の機能をリストと共有しています。

num\_set = {1、 2,3,4,5}

word\_set = set([“spam”、 “eggs”、 “sausage”])

print(3 in num\_set)

print( “spam” not in word\_set)

>>> True

>> False

注:空のセットを作成するには、set()を使用する必要があります。 {}空の辞書を作成します。

セットはいくつかの点でリストとは異なりますが、 len などのいくつかのリスト操作を共有します。 。それらは順序付けられていないため、インデックスを作成できません。重複する要素を含めることはできません。保存方法により、より速く、アイテムがリストの一部ではなくセットの一部であるかどうかを確認します。を使用する代わりにセットに追加するには、追加を使用します。メソッド削除は特定のものを削除しますセットからの要素; pop は任意の要素を削除します。

セットは数学演算を使用して組み合わせることができます。 union 演算子 | は、2つのセットを組み合わせて、いずれかのアイテムを含む新しいセットを形成します。交差点演算子は両方のアイテムのみを取得します。の違い演算子でアイテムを取得最初のセットですが、2番目のセットではありません。 対称差演算子 ^ は、両方ではなくいずれかのセットのアイテムを取得します。

辞書を使用する場合: key:value間の論理的な関連付けが必要な場合ペア。 -カスタムキーに基づいて、データをすばやく検索する必要がある場合。 -データが絶えず変更されている場合。辞書は変更可能であることを忘れないでください。 他のタイプを使用する場合:-データのコレクションがある場合は、リストを使用します。ランダムアクセスは必要ありません。頻繁に変更される単純で反復可能なコレクションが必要な場合は、リストを選択してください。 -要素の一意性が必要な場合は、セットを使用します。 -データを変更できない場合は、タプルを使用します。

これがお役に立てば幸いです。

ハッピーコーディング。

これが気に入ったら、最後にもう1つ、賛成してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です