データ構造(セット)
書きやすくしてプログラマの作業性とコードの信頼性を高めることを重視してデザインされた、汎用の高水準言語です。
homepage
# **データ構造(セット)** ### **セット** セットは、順不同であり、重複の無いリストを扱います。 Pythonのセットは、中括弧で書かれています。 * 例 セットの作成: ``` thisset = ["りんご", "バナナ", "みかん"] print (thisset) ``` >セットは順不同ですので、項目はランダムな順序で表示されます。 ### **アクセス項目** セットは順不同ですので、インデックスを参照してセット内の項目にアクセスすることはできません。 しかし、`for`ループを使用して設定項目をループしたり、 `in`キーワードを使用して指定した値が含まれているかどうかを確認することができます。 * 例 セットをループして値を表示します。: ``` thisset = ["りんご", "バナナ", "みかん"] for x in thisset: print (x) ``` * 例 ``` thisset = ["りんご", "バナナ", "みかん"] print ("バナナ" in thisset) ``` ### **変更項目値** セットを作成したら、その項目を変更することはできませんが、新しい項目を追加することはできます。 ### **項目を追加する** セットに1つの項目を追加するには`add()`メソッドを使います。 セットに複数の項目を追加するには、`update()`メソッドを使用します。 * 例 `add()`メソッドを使用して、項目をセットに追加します。 ``` thisset = ["りんご", "バナナ", "みかん"] thisset.add("ぶどう") print (thisset) ``` * `update()`メソッドを使用して、複数の項目をセットに追加します。 ``` thisset = {"りんご", "バナナ", "みかん"} thisset.update(["オレンジ"、"マンゴー"、"ブドウ") print (thisset) ``` ### **セットの長さを取得します** セット内の項目の数を取得するために、`len()`を使う方法があります。 * 例 セット内の項目の数を取得します: ``` thisset = ["りんご", "バナナ", "みかん"] print (len(thisset)) ``` ### **項目を削除** セット内の項目を削除するには、使用`remove()`、または`discard()`を使う方法があります。 * 例 `remove()`メソッドを使用して "バナナ"を削除します。 ``` thisset = ["りんご", "バナナ", "みかん"] thisset.remove("バナナ") print (thisset) ``` >注意:削除する項目が存在しない場合、`remove()`を使うとエラーがでます。 * 例 `discard()`メソッドを使用して "バナナ"を削除します。 ``` thisset = ["りんご", "バナナ", "みかん"] thisset.discard("バナナ") print(thisset) ``` >注意:削除する項目が存在しない場合、`discard()`を使ってもエラーが**でません**。 `pop()`メソッドを使って項目を削除することもできますが、このメソッドは最後の項目を削除します。 セットの順番は決まっていないので、どの項目が削除されるのかわかりません。 `pop()`メソッドの戻り値は削除された項目です。 * `pop()`メソッドを使用して最後の項目を削除します。 ``` thisset = ["りんご", "バナナ", "みかん"] thisset.append("ぶどう") print (thisset) ``` * 指定したインデックスに項目を追加するには、`insert( )`メソッドを使用します。 ``` thisset = ["りんご", "バナナ", "みかん"] x = thisset.pop() print (x) print (thisset) ``` >注:セットは順不同なため、`pop()`メソッドを使用しても、どの項目が削除されるかわかりません。 * `clear()`メソッドはセットを空にします。 ``` thisset = ["りんご", "バナナ", "みかん"] thisset.clear() print (thisset) ``` * `del`キーワードはセットを完全に削除します。 ``` thisset = ["りんご", "バナナ", "みかん"] del thisset print (thisset) ``` ### **`set()`コンストラクタ** セットを作るために`set()`コンストラクタを使うことも可能です。 * `set()`コンストラクタを使って集合を作る: ``` thisset = set(("りんご", "バナナ", "みかん")) #二重丸括弧に注意してください print (thisset) ``` ## セットメソッド <table border="1"> <tr> <td>Method</td> <td>Description</td> </tr> <tr> <td>add()</td> <td>セットに項目を追加します</td> </tr> <tr> <td>clear()</td> <td>セットからすべての項目を削除します</td> </tr> <tr> <td>copy()</td> <td>セットのコピーを返します</td> </tr> <tr> <td>difference()</td> <td>2つ以上のセット間の差を含むセットを返します</td> </tr> <tr> <td>difference_update()</td> <td>指定された別のセットにも含まれている、このセット内の項目を削除します</td> </tr> <tr> <td>discard()</td> <td>指定したアイテムを削除する</td> </tr> <tr> <td>intersection()</td> <td>セット、つまり他の2つのセットの共通部分を返します</td> </tr> <tr> <td>intersection_update()</td> <td>指定された他のセットに存在しない、このセット内の項目を削除します</td> </tr> <tr> <td>isdisjoint()</td> <td>2つの集合に交差があるかどうかを返します</td> </tr> <tr> <td>issubset()</td> <td>別のセットにこのセットが含まれているかどうかを返します</td> </tr> <tr> <td>issuperset()</td> <td>このセットに別のセットが含まれているかどうかを返します</td> </tr> <tr> <td>pop()</td> <td>セットから項目を削除します</td> </tr> <tr> <td>remove()</td> <td>指定された項目を削除します</td> </tr> <tr> <td>symmetric_difference()</td> <td>2つのセットの対称差を使ってセットを返します</td> </tr> <tr> <td>symmetric_difference_update()</td> <td>このセットと別のセットとの対称的な違いを挿入します</td> </tr> <tr> <td>union()</td> <td>集合の和集合を含む集合を返す</td> </tr> <tr> <td>update()</td> <td>このセットと他のセットの和集合でセットを更新します</td> </tr> </table> > 練習 >> 「りんご」が`fruits`セットにあるかどうか確認してください。 ``` fruits = {"りんご", "バナナ", "みかん"} if ("りんご" _____ fruits): print("はい、りんごはフルーツです!") ``` >>> answer: `in`
content
戻る