set

問題を報告 ソースを表示 ナイトリー · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

試験運用版。この API は試験運用版であり、随時変更される可能性があります。これに依存しないでください。--experimental_enable_starlark_set を設定することで、試験運用版として有効にできます。

組み込みの可変セット型。セット式の例:

x = set()           # x is an empty set
y = set([1, 2, 3])  # y is a set with 3 elements
3 in y              # True
0 in y              # False
len(x)              # 0
len(y)              # 3

ブール値コンテキストで使用されるセットは、空でない場合のみ true です。

s = set()
"non-empty" if s else "empty"  # "empty"
t = set(["x", "y"])
"non-empty" if t else "empty"  # "non-empty"

セットの要素はハッシュ可能である必要があります。x が辞書のキーとして使用できる場合にのみ、x をセットの要素にできます。

セット自体はハッシュ化できないため、別のセットを要素として持つセットを作成することはできません。

セットの要素にはインデックスでアクセスできませんが、反復処理できます。また、list() 組み込み関数を使用して、セットの要素のリストを反復順序で取得できます。リストの場合と同様に、反復処理中にセットを変更することはエラーです。反復の順序は広告掲載オーダーと一致します。

s = set([3, 1, 3])
s.add(2)
# prints 3, 1, 2
for item in s:
    print(item)
list(s)  # [3, 1, 2]

st と等しいのは、t が同じ要素を含むセットであり、反復順序が異なる可能性がある場合のみです。特に、セットは要素のリストと等しいものです。not

セットは順序付けされていません。<<=>>= オペレーションはセットに対して定義されておらず、Python とは異なり、セットのリストを並べ替えることはできません。

2 つのセットに対する | オペレーションは、2 つのセットの結合を返します。これは、元のセットの一つまたは両方にある要素を含むセットです。| オペレーションには拡張代入バージョンがあります。s |= tt のすべての要素を s に追加します。

set([1, 2]) | set([3, 2])  # set([1, 2, 3])
s = set([1, 2])
s |= set([2, 3, 4])        # s now equals set([1, 2, 3, 4])

2 つのセットに対する & 演算は、2 つのセットの共通部分を返します。これは、元の両方のセットに存在する要素のみを含むセットです。& オペレーションには拡張代入バージョンがあります。s &= t は、t にないすべての要素を s から削除します。

set([1, 2]) & set([2, 3])  # set([2])
set([1, 2]) & set([3, 4])  # set()
s = set([1, 2])
s &= set([0, 1])           # s now equals set([1])

2 つのセットに対する - 演算は、2 つのセットの差を返します。これは、左側のセットには存在し、右側のセットには存在しない要素を含むセットです。- オペレーションには拡張代入バージョンがあります。s -= t は、t にあるすべての要素を s から削除します。

set([1, 2]) - set([2, 3])  # set([1])
set([1, 2]) - set([3, 4])  # set([1, 2])
s = set([1, 2])
s -= set([0, 1])           # s now equals set([2])

2 つのセットに対する ^ 演算は、2 つのセットの対称差を返します。これは、2 つの元のセットのうち 1 つにのみ存在し、両方に存在しない要素を含むセットです。^ オペレーションには、拡張代入バージョンがあります。s ^= t は、s にある t の要素を s から削除し、s にない t の要素を s に追加します。

set([1, 2]) ^ set([2, 3])  # set([1, 3])
set([1, 2]) ^ set([3, 4])  # set([1, 2, 3, 4])
s = set([1, 2])
s ^= set([0, 1])           # s now equals set([2, 0])

メンバー

追加

None set.add(element)

要素をセットに追加します。

パラメータ

パラメータ 説明
element 必須
追加する要素。

クリア

None set.clear()

セットのすべての要素を削除します。

差異

set set.difference(*others)

このセットと他のセットの差分を含む新しい変更可能なセットを返します。

次に例を示します。

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。

difference_update

None set.difference_update(*others)

他のセットに存在する要素をこのセットから削除します。

次に例を示します。

x = set([1, 2, 3, 4])
x.difference_update([2, 3], [3, 4])
# x is now set([1])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。

破棄

None set.discard(element)

要素が存在する場合は、セットから要素を削除します。

パラメータ

パラメータ 説明
element 必須
破棄する要素。

共通集合

set set.intersection(*others)

このセットと他のセットの交差を含む新しい変更可能なセットを返します。

次に例を示します。

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。

intersection_update

None set.intersection_update(*others)

他のセットにない要素をこのセットから削除します。

次に例を示します。

x = set([1, 2, 3, 4])
x.intersection_update([2, 3], [3, 4])
# x is now set([3])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。

isdisjoint

bool set.isdisjoint(other)

このセットに別のセットと共通する要素がない場合、true を返します。

次に例を示します。

set([1, 2]).isdisjoint([3, 4]) == True
set().isdisjoint(set()) == True
set([1, 2]).isdisjoint([2, 3]) == False

パラメータ

パラメータ 説明
other 必須
セット、シーケンス、または辞書。

issubset

bool set.issubset(other)

このセットが別のセットのサブセットである場合は true を返します。

次に例を示します。

set([1, 2]).issubset([1, 2, 3]) == True
set([1, 2]).issubset([1, 2]) == True
set([1, 2]).issubset([2, 3]) == False

パラメータ

パラメータ 説明
other 必須
セット、シーケンス、または辞書。

issuperset

bool set.issuperset(other)

このセットが別のセットのスーパーセットである場合は true を返します。

次に例を示します。

set([1, 2, 3]).issuperset([1, 2]) == True
set([1, 2, 3]).issuperset([1, 2, 3]) == True
set([1, 2, 3]).issuperset([2, 3, 4]) == False

パラメータ

パラメータ 説明
other 必須
セット、シーケンス、または辞書。

ポップ

unknown set.pop()

セットの最初の要素を削除して返します。セットが空の場合、失敗します。

削除

None set.remove(element)

セットに存在する必要がある要素をセットから削除します。要素がセットに存在しない場合、失敗します。

パラメータ

パラメータ 説明
element 必須
削除する要素。

symmetric_difference

set set.symmetric_difference(other)

このセットと別のセット、シーケンス、辞書の差分を含む新しい変更可能なセットを返します。

次に例を示します。

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

パラメータ

パラメータ 説明
other 必須
セット、シーケンス、または辞書。

symmetric_difference_update

None set.symmetric_difference_update(other)

このセットと別のセット、シーケンス、辞書の差分を含む新しい変更可能なセットを返します。

次に例を示します。

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

パラメータ

パラメータ 説明
other 必須
セット、シーケンス、または辞書。

ユニオン

set set.union(*others)

このセットと他のセットのユニオンを含む新しい変更可能なセットを返します。

次に例を示します。

set([1, 2]).union([2, 3, 4], [4, 5]) == set([1, 2, 3, 4, 5])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。

update

None set.update(*others)

他のセットに見つかった要素をこのセットに追加します。

次に例を示します。

x = set([1, 2])
x.update([2, 3], [3, 4])
# x is now set([1, 2, 3, 4])

パラメータ

パラメータ 説明
others 必須
セット、シーケンス、ディクショナリ。