Python セット

集合(Set)

集合は無序でインデックスのない集合です。Pythonでは、集合は括弧を使用して書かれます。

集合を作成する:

thisset = {"apple", "banana", "cherry"}
print(thisset)

実行例

注記:集合は無序であるため、項目の表示順序を特定できません。

項目にアクセスする

セットの項目にインデックスを使用してアクセスすることはできません、なぜならセットは無序であり、項目にインデックスがないためです。

ただし、 for setの項目をループで巡回するか、または in キーワードを使用して集合に指定された値が存在するかを確認します。

集合を巡回し、値を印刷する:

thisset = {"apple", "banana", "cherry"}
for x in thisset:
  print(x)

実行例

セットに「banana」が存在するか確認する:

thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)

実行例

項目を変更する

集合が一旦作成されると、項目を変更することができませんが、新しい項目を追加できます。

項目を追加する

項目をセットに追加するには、 add() 方法。

複数の項目をセットに追加するには、 update() 方法。

使用 add() 方法でセットに項目を追加する:

thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)

実行例

使用 update() 方法で複数の項目をセットに追加する:

thisset = {"apple", "banana", "cherry"}
thisset.update(["orange", "mango", "grapes"])
print(thisset)

実行例

セットの長さを取得する

セット内の項目数を確認するには、 len() 方法。

セット内の項目数を取得する:

thisset = {"apple", "banana", "cherry"}
print(len(thisset))

実行例

項目を削除する

セットから項目を削除するには、 remove() または discard() 方法。

使用 remove() 方法で「banana」を削除する:

thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)

実行例

注記:削除する項目が存在しない場合 remove() エラーを引き起こします。

使用 discard() 方法で「banana」を削除する:

thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)

実行例

注記:削除する項目が存在しない場合 discard() エラーを引き起こしません。

さらに、 pop() 方法で項目を削除しますが、この方法は最後の項目を削除します。セットは無序であるため、削除されたのはどの項目か知りません。

pop() 方法の返り値は削除された項目です。

使用 pop() 方法で最後の項目を削除する:

thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
print(thisset)

実行例

注記:集合は無序で、そのため pop() 方法を呼び出すと、削除されたのはどの項目か知りません。

clear() 方法をクリアする:

thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)

実行例

del 集合を完全に削除する:

thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)

実行例

集合を合併する

Pythonでは、二つまたはそれ以上の集合を結合するためのいくつかの方法があります。

union() メソッドを使用して、二つの集合の全ての項目を含む新しい集合を返すことができます。また、update() メソッドを使用して、一つの集合の全ての項目を別の集合に挿入することもできます:

union() メソッドは、二つの集合の全ての項目を含む新しい集合を返します:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)

実行例

update() メソッドは set2 の項目を set1 に挿入します:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)

実行例

注記:union() と update() はどちらも重複する項目を除外します。

他の集合を結合するための他の方法もあります。重複する項目を含めるかどうか、または含めないかどうかを確認してください。このページの下部に集合メソッドの完全リストがあります。

set() コンストラクタ

また、以下を使用することもできます。 set() 集合を作成するためのコンストラクタ。

使用 set() 集合を作成するためのコンストラクタ:

thisset = set(("apple", "banana", "cherry")) # 双括号に注意してください
print(thisset)

実行例

Set メソッド

Pythonには集合(set)上で使用できる内建メソッドが一式あります。

メソッド 説明
add() 集合に要素を追加します。
clear() 集合の全ての要素を削除します。
copy() 集合のコピーを返します。
difference() 二つの集合間の差を含む集合を返します。
difference_update() この集合にも他の指定集合に含まれる項目を削除します。
discard() 指定の項目を削除します。
intersection() 二つの他の集合の交集合を返します。
intersection_update() この集合に存在しない他の指定集合に存在する項目を削除します。
isdisjoint() 二つの集合が交差するかどうかを返します。
issubset() 別の集合がこの集合を含むかどうかを返します。
issuperset() この集合が別の集合を含むかどうかを返します。
pop() 集合から一つの要素を削除します。
remove() 指定の要素を削除します。
symmetric_difference() 2つの集合の対称差を含む集合を返します。
symmetric_difference_update() この集合と別の集合の対称差を挿入します。
union() 集合の和を含む集合を返します。
update() この集合と他の集合の和を更新します。