logo

Python セット

Python Set は、反復可能で変更可能で、重複する要素を持たないデータ型の順序なしのコレクションです。セット内の要素の順序は定義されていませんが、セットはさまざまな要素で構成されます。リストとは対照的に、セットを使用する主な利点は、特定の要素がセットに含まれているかどうかを確認するための高度に最適化された方法があることです。ここでは、Python におけるセットとは何かを確認し、セット Python のさまざまな例も見ていきます。

Python でセットを作成する

Python セットは、組み込みの セット() 反復可能なオブジェクトまたはシーケンスを使用して関数を使用するには、シーケンスを中かっこ内に「カンマ」で区切って配置します。



注記: Python セットは不変であるため、リストや辞書などの変更可能な要素を含めることはできません。

Python3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Creating a Set with the use of a String set1 = set('GeeksForGeeks') print('
Set with the use of String: ') print(set1) String = 'GeeksForGeeks' set1 = set(String) print('
Set with the use of an Object: ') print(set1) # Creating a Set with the use of a List set1 = set(['Geeks', 'For', 'Geeks']) print('
Set with the use of List: ') print(set1) # Creating a Set with the use of a tuple t = ('Geeks', 'for', 'Geeks') print('
Set with the use of Tuple: ') print(set(t)) # Creating a Set with the use of a dictionary d = {'Geeks': 1, 'for': 2, 'Geeks': 3} print('
Set with the use of Dictionary: ') print(set(d))>

出力

Javaメソッドのオーバーライド
Initial blank Set:  set()  Set with the use of String:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of an Object:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of List:  {'For', 'Geeks'}  Set with the use of Tuple:  {'for', 'Geeks'}  Set with the use of Dictionary:  {'for', 'Geeks'}>

時間計算量: O(n)。n は入力文字列、リスト、タプル、または辞書の長さです。
補助スペース: O(n)。n は入力文字列、リスト、タプル、または辞書の長さです。



Python セットには一意の要素のみが含まれますが、セットの作成時に複数の重複した値を渡すこともできます。 Python セット内の要素の順序は未定義であり、変更できません。セット内の要素の型は同じである必要はなく、さまざまな混合データ型値をセットに渡すこともできます。

データの独立性を説明する
Python3
# Creating a Set with a List of Numbers # (Having duplicate values) set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) print('
Set with the use of Numbers: ') print(set1) # Creating a Set with a mixed type of values # (Having numbers and strings) set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) print('
Set with the use of Mixed Values') print(set1)>

出力
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, 6, 'Geeks', 'For'}>

別の方法で Python セットを作成する

この例では、中かっこ {} 表記を使用してセットが作成され、数値 1、2、および 3 が含まれます。Python のセット データ構造または Python の順序なしセットは、一意の要素の順序なしのコレクションであるため、一意性を必要とするタスクに適しています。 Python での設定操作。

Python3
# Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>

出力
{1, 2, 3}>

Python でのセットへの要素の追加

以下に、Python で要素をセットに追加するためのいくつかのアプローチを示します。



  • add() メソッドの使用
  • update() メソッドの使用

add() メソッドの使用

要素を追加できますPython のセット組み込みを使用して 追加() 関数。 add() メソッドを使用してセットに追加できる要素は一度に 1 つだけです。 add() メソッドを使用して一度に複数の要素を追加するにはループが使用されます。

注記: リストはハッシュ可能ではないため、リストを要素としてセットに追加できませんが、タプルは不変であるためハッシュ可能であるため、タプルを追加できます。

Python3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Adding element and tuple to the Set set1.add(8) set1.add(9) set1.add((6, 7)) print('
Set after Addition of Three elements: ') print(set1) # Adding elements to the Set # using Iterator for i in range(1, 6): set1.add(i) print('
Set after Addition of elements from 1-5: ') print(set1)>

出力
Initial blank Set: set() Set after Addition of Three elements: {8, 9, (6, 7)} Set after Addition of elements from 1-5: {1, 2, 3, (6, 7), 4, 5, 8, 9}>

update() メソッドの使用

複数の要素を追加するには、Update()メソッドを使用します。 update() メソッドは、リスト、文字列、タプル、およびその他の Python ハッシュ セットを引数として受け入れます。これらすべての場合において、重複する要素は避けられます。

Python3
# Addition of elements to the Set # using Update function set1 = set([4, 5, (6, 7)]) set1.update([10, 11]) print('
Set after Addition of elements using Update: ') print(set1)>

出力
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>

Python でのセットへのアクセス

セットは順序付けされておらず、項目にはインデックスがないため、インデックスを参照してセット項目にアクセスすることはできません。ただし、for ループを使用して Python ハッシュ セット項目をループしたり、in キーワードを使用して指定された値がセットに存在するかどうかを尋ねたりすることができます。

Python3
# Creating a set set1 = set(['Geeks', 'For', 'Geeks.']) print('
Initial set') print(set1) # Accessing element using # for loop print('
Elements of set: ') for i in set1: print(i, end=' ') # Checking the element # using in keyword print('
') print('Geeks' in set1)>

出力

Initial set {'Geeks.', 'For', 'Geeks'}  Elements of set:  Geeks. For Geeks   True>

Python でのセットからの要素の削除

以下は、Python でセットから要素を削除する方法のいくつかです。

  • Remove() メソッドまたは Discard() メソッドの使用
  • Pop() メソッドの使用
  • clear() メソッドの使用

Remove() メソッドまたは Discard() メソッドの使用

要素はから削除できますPython のセット組み込みのremove()関数を使用しますが、要素がハッシュセットPythonに存在しない場合はKeyErrorが発生します。 KeyError を発生させずにセットから要素を削除するには、discard() を使用します。要素がセットに存在しない場合、要素は変更されません。

.netチュートリアル
Python3
# Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing elements from Set using Remove() method set1.remove(5) set1.remove(6) print('
Set after Removal of two elements: ') print(set1) # Removing elements from Set using Discard() method set1.discard(8) set1.discard(9) print('
Set after Discarding two elements: ') print(set1) # Removing elements from Set using iterator method for i in range(1, 5): set1.remove(i) print('
Set after Removing a range of elements: ') print(set1)>

出力
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after Removal of two elements: {1, 2, 3, 4, 7, 8, 9, 10, 11, 12} Set after Discarding two elements: {1, 2, 3, 4, 7, 10, 11, 12} Set after Removing a range of elements: {7, 10, 11, 12}>

Pop() メソッドの使用

Pop() 関数は、セットから要素を削除して返すために使用することもできますが、削除されるのはセットの最後の要素のみです。

注記: セットが順序付けされていない場合、pop() 関数を使用してどの要素がポップされるかを決定する方法はありません。

Python3
# Python program to demonstrate # Deletion of elements in a Set # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing element from the # Set using the pop() method set1.pop() print('
Set after popping an element: ') print(set1)>

出力
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after popping an element: {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}>

clear() メソッドの使用

セットからすべての要素を削除するには、clear() 関数を使用します。

setinterval JavaScript
Python3
#Creating a set set1 = set([1,2,3,4,5]) print('
 Initial set: ') print(set1) # Removing all the elements from  # Set using clear() method set1.clear() print('
Set after clearing all the elements: ') print(set1)>

出力
 Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>

凍ったPython のセット

冷凍セット Python の は、適用先の固定セットに影響を与えずに結果を生成するメソッドと演算子のみをサポートする不変オブジェクトです。セットの要素はいつでも変更できますが、フリーズされたセットの要素は作成後も同じままです。

パラメータが渡されない場合は、空のフローズンセットが返されます。

Python3
# Python program to demonstrate # working of a FrozenSet # Creating a Set String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r') Fset1 = frozenset(String) print('The FrozenSet is: ') print(Fset1) # To print Empty Frozen Set # No parameter is passed print('
Empty FrozenSet: ') print(frozenset())>

出力
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>

オブジェクトをセットに型キャストする

この例では、 リスト 、文字列と 辞書 を使用してセットに変換されます。 セット() コンストラクターを使用して、リスト内の重複を削除し、文字列および辞書キー内の固有の要素を抽出します。

Python3
# Typecasting list into set my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2] my_set = set(my_list) print('my_list as a set: ', my_set) # Typecasting string into set my_str = 'techcodeview.com' my_set1 = set(my_str) print('my_str as a set: ', my_set1) # Typecasting dictionary into set my_dict = {1: 'One', 2: 'Two', 3: 'Three'} my_set2 = set(my_dict) print('my_dict as a set: ', my_set2)>

出力
my_list as a set: {1, 2, 3, 4, 5, 6} my_str as a set: {'G', 'f', 'r', 'e', 'k', 'o', 's'} my_dict as a set: {1, 2, 3}>

例: すべての関数の実装

この例では、一連の関数が一般的な操作を示しています。Python のセット。これらには、セットの作成、要素の追加と削除、セットのクリア、セットの結合、交差、差分、対称差分、サブセット、およびスーパーセットの操作の実行が含まれます。

Python3
def create_set(): my_set = {1, 2, 3, 4, 5} print(my_set) def add_element(): my_set = {1, 2, 3, 4, 5} my_set.add(6) print(my_set) def remove_element(): my_set = {1, 2, 3, 4, 5} my_set.remove(3) print(my_set) def clear_set(): my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) def set_union(): set1 = {1, 2, 3} set2 = {4, 5, 6} my_set = set1.union(set2) print(my_set) def set_intersection(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.intersection(set2) print(my_set) def set_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.difference(set2) print(my_set) def set_symmetric_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.symmetric_difference(set2) print(my_set) def set_subset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} subset = set2.issubset(set1) print(subset) def set_superset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} superset = set1.issuperset(set2) print(superset) if __name__ == '__main__': create_set() add_element() remove_element() clear_set() set_union() set_intersection() set_difference() set_symmetric_difference() set_subset() set_superset()>

出力
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 4, 5} set() {1, 2, 3, 4, 5, 6} {4, 5} {1, 2, 3} {1, 2, 3, 6, 7, 8} True True>

Python での Set の利点

  • ユニークな要素 : セットには一意の要素のみを含めることができるため、データのコレクションから重複を削除するのに役立ちます。
  • メンバーシップの迅速なテスト : セットは高速メンバーシップ テスト用に最適化されているため、値がコレクション内にあるかどうかを判断するのに役立ちます。
  • 数学的な集合演算: セットは、和集合、積集合、差分などの数学的な集合演算をサポートしており、データのセットを操作する場合に役立ちます。
  • 可変 : セットは変更可能です。つまり、セットの作成後に要素を追加または削除できます。

の欠点Python のセット

  • 順序なし : セットには順序がありません。つまり、セット内のデータの順序に依存できません。これにより、特定の順序でデータにアクセスしたり処理したりすることが困難になる可能性があります。
  • 制限された機能: セットは、append() や Pop() などのメソッドをサポートしていないため、リストに比べて機能が制限されています。これにより、セットに格納されているデータの変更や操作がより困難になる可能性があります。
  • メモリ使用量: セットは、特に小さなデータセットの場合、リストよりも多くのメモリを消費する可能性があります。これは、セット内の各要素がハッシュ値を保存するために追加のメモリを必要とするためです。
  • あまり一般的ではない: Python では、セットはリストや辞書ほど一般的には使用されません。つまり、セットを操作するために利用できるリソースやライブラリが少ない可能性があります。これにより、問題の解決策を見つけたり、デバッグのサポートを受けることがより困難になる可能性があります。

全体として、セットは Python の便利なデータ構造となり、特に重複の削除やメンバーシップの高速テストに役立ちます。ただし、順序付けがなく、機能が制限されているため、リストや辞書に比べて汎用性が劣る可能性もあります。そのため、Python プログラムで使用するデータ構造を決定する際には、セットを使用する利点と欠点を慎重に考慮することが重要です。

Python でメソッドを設定する

関数説明
追加() 要素をセットに追加します
取り除く() セットから要素を削除します。要素がセット内に存在しない場合は、KeyError を発生させます。
クリア() セットからすべての要素を削除します
コピー() セットの浅いコピーを返します
ポップ() 任意の set 要素を削除して返します。セットが空の場合は KeyError を発生させます
アップデート() それ自体と他のものを結合してセットを更新します
連合() 新しいセット内のセットの和集合を返します
違い() 2 つ以上のセットの差を新しいセットとして返します
差分更新() このセットから別のセットのすべての要素を削除します
破棄() 要素がメンバーである場合は、セットから要素を削除します。 (要素がセットにない場合は何もしません)
交差点() 2 つのセットの共通部分を新しいセットとして返します
交差点更新()セット自体と別のセットの交差部分を更新します。
isdisjoint() 2 つのセットに null 交差がある場合は True を返します
issubset() 別のセットにこのセットが含まれている場合は True を返します
スーパーセット() このセットに別のセットが含まれている場合は True を返します
対称差分() 2 つのセットの対称差を新しいセットとして返します
対称差分更新() それ自体と別のセットの対称的な差分を使用してセットを更新します

Python セットに関する最近の記事

プログラムを設定する

  • すべての母音を含む文字列を受け入れるプログラム
  • セットを使用して 3 つのリスト内の共通要素を見つける Python プログラム
  • 2 つのリスト内の欠損値と追加値を見つける
  • 2 つのセット内の完全な文字列のペア
  • 指定された文字列がヘテログラムかどうかを確認します
  • セット内の最大値と最小値
  • セットから項目を削除する
  • Python Set 差分を使用して、重複した配列から失われた要素を見つける
  • Counter を使用した個別の要素を持つサブセットの最小数
  • 2 つのリストに少なくとも 1 つの共通要素があるかどうかを確認する
  • 指定された文字列のセットを使用して母音の数を数えるプログラム
  • 2 つのリストの違い
  • 文字列がパナグラムかどうかをチェックするように設定された Python
  • Python の集合演算 (和集合、積集合、差分、対称差分)
  • Python の一般的ではない文字を含む文字列を連結する
  • Python 辞書、周波数が同じになるかどうかを確認するためのセットとカウンター
  • Python パングラム チェックで Set() を使用する
  • n 個の配列の結合を行うように Python で update() を設定します。

役立つリンク

  • Python プログラムの出力 – セット
  • Python セットに関する最近の記事
  • 多肢選択問題 – Python
  • Python カテゴリのすべての記事