Python > 言語 > データ型 > 集合型


Python - 言語 - データ型 - 集合型

*

*


データ型:集合型(set)

概要

[ edit ]

  • 変更可能な集合(set)と,変更不可の不変集合(frozenset)がある
  • 集合とは
    • 値の重複を許さない
    • 要素に順序がない

[edit]

生成子: 集合(set)と不変集合(frozenset)

  • 重複の無いリストのようなもの

x = set(["a", "b", "c"])
print( x )
print( type( x ) )
  • 空集合は,set()で表現します.

    •  {} は空の辞書となります.

x = {}
print( x )
print( type( x ) )

{}
>>> print( type( x ) )
<class 'dict'>

  • 但し,要素に重複もなく,順序もないので,シーケンス的な演算は使えない

y = set(["e", "d", "d", "c", "e"])
print( y )

{'e', 'c', 'd'}

演算

[edit]

集合演算(不変集合にも適用できるもの)

  • 要素数

    len(s)

    集合 s の要素数 (s の濃度) を返す

    包含判定

    x in s

    x が s に含まれるか判定する

    非包含判定

    x not in s

    x が s に含まれていないことを判定する

    排他性判定

    isdisjoint(other)

    集合が other と共通の要素を持たないとき,True を返す

    部分集合判定

    issubset(other)

    set <= other

    set の全ての要素が other に含まれるか判定する

    set < other

    set が other の真部分集合であるかを判定する

    上位集合判定

    issuperset(other)

    set >= other

    other の全ての要素が set に含まれるか判定する

    set > other

    set が other の真上位集合であるかを判定する

    和集合

    union(other, ...)

    set | other | ...

    set と全ての other の要素からなる新しい集合を返す

    積集合

    intersection(other, ...)

    set & other & ...

    set と全ての other に共通する要素を持つ、新しい集合を返す

    差集合

    difference(other, ...)

    set - other - ...

    set に含まれ、かつ、全ての other に含まれない要素を持つ、新しい集合を返す

    対称差集合

    symmetric_difference(other)

    set ^ other

    set と other のいずれか一方だけに含まれる要素を持つ新しい集合を返す

    浅いコピー

    copy()

    s の浅いコピーを新しい集合として返す

  • 包含判定

   1 x = set(["a", "b", "c"])
   2 print( "c" in x  )

   1 x = set(["a", "b", "c"])
   2 print( "d" in x  )
  • 和集合

   1 x = set(["a", "b"])
   2 y = set(["b", "c"])
   3 print( x | y )

  • 差集合

   1 x = set(["a", "b"])
   2 y = set(["b", "c"])
   3 print( x - y )

  • 積集合

   1 x = set(["a", "b"])
   2 y = set(["b", "c"])
   3 print( x & y )

  • 対称差集合

   1 x = set(["a", "c"])
   2 y = set(["a", "b"])
   3 print( x ^ y )

集合更新演算(不変集合には適用できない)

[edit]

  • update(other, ...)

    set |= other | ...

    全ての other の要素を追加し、 set を更新する.

    intersection_update(other, ...)

    set &= other & ...

    元の set と全ての other に共通する要素だけを残して set を更新する.

    difference_update(other, ...)

    set -= other | ...

    other に含まれる要素を取り除き、 set を更新する.

    symmetric_difference_update(other)

    set ^= other

    どちらかにのみ含まれて、共通には持たない要素のみで set を更新する.

    add(elem)

    要素 elem を set に追加する.

    remove(elem)

    要素 elem を set から取り除く.elem が set に含まれていなければ KeyError を送出する

    discard(elem)

    要素 elem が set に含まれていれば、取り除く.

    pop()

    s から任意の要素を取り除き、それを返す.集合が空の場合、 KeyError を送出する

    clear()

    set の全ての要素を取り除く.

   1 x = set(["a", "b", "c"])
   2 x.add('f')
   3 print( x )

*

リファレンス

*



Software Engineering(IIJIMA, Tadashi -- Keio Univ.)



*

SoftEng: Python/Lang/DataType/Set (last edited 2018-09-28 12:55:18 by TadashiIijima)