Julia Base.Set

Set(集合)は、Julia言語のコレクションのひとつである。

目次

  1. 1 コレクション
  2. 2 定義
  3. 3 集合の作成
  4. 4 型
  5. 5 名前
  6. 6 順序性
  7. 7 値の重複
  8. 8 繰返し処理
  9. 9 帰属
  10. 10 和集合
  11. 11 積集合
  12. 12 差集合
  13. 13 空の集合
  14. 14 要素の追加
  15. 15 要素の削除
  16. 16 Base.sum
  17. 17 参考文献

1 コレクション

Base.Set はコレクションの一種である。Julia 言語には、以下に示すコレクションがある。

Juliaのコレクション
コレクション 順序 名前 値の重複 要素の追加・変更
Core.Array
Core.NamedTuple
Core.Tuple
Base.Dict
Base.Matrix
Base.Set
Base.Vector

Base.Set は以下に示す特徴を持つ。

上記の特徴を持つコレクションは、一般的に「集合」と呼ばれる。

2 定義

Set{T} <: AbstractSet{T}

3 集合の作成

集合を作成する。

julia> a = Set(["foo", "bar", "baz"])
Set{String} with 3 elements:
  "bar"
  "baz"
  "foo"

ひとつの集合の中に異なるデータ型が混在しても構わない。

julia> b = Set([1, "foo"])
Set{Any} with 2 elements:
  1
  "foo"

4 型

型を指定して集合を定義することができる。データの型は typeof 関数で調べることができる。

julia> a = Set(["foo", "bar", "baz"])
Set{String} with 3 elements:
  "bar"
  "baz"
  "foo"

julia> typeof(a)
Set{String}

5 名前

集合は値のみを持つことができる。各々の値に名前を付けることはできない。Key-Valueで言えば、キーのみを格納できる。

6 順序性

集合は値の順序性を保持することはできない。

julia> a = Set([1, 2, 3, 4])
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> b = Set([3, 4, 5, 6])
Set{Int64} with 4 elements:
  5
  4
  6
  3

7 値の重複

集合は重複する値を持つことはできない。

julia> a = Set([1, 1, 2])
Set{Int64} with 2 elements:
  2
  1

8 繰返し処理

julia> x = Set([1, 2.0, "foo"])
Set{Any} with 3 elements:
  "foo"
  2.0
  1

julia> for i in x
         println(i)
       end
foo
2.0
1

9 帰属

値が集合に含まれているかどうかは、in関数または ∈ 演算子を使う。

julia> a = Set([1, 2, 3, 4])
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> in(1, a)
true

julia> 1 ∈ a
true

julia> in(5, a)
false

julia> 5 ∈ a
false

10 和集合

和集合を求めるには、union 関数または ∪ 演算子を使う。

julia> a = Set([1, 2, 3, 4])
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> b = Set([3, 4, 5, 6])
Set{Int64} with 4 elements:
  5
  4
  6
  3

julia> c = union(a, b)
Set{Int64} with 6 elements:
  5
  4
  6
  2
  3
  1
julia> c = a ∪ b
Set{Int64} with 6 elements:
  5
  4
  6
  2
  3
  1

11 積集合

積集合を求めるには、intersect 関数または ∩ 演算子を使う。

julia> a = Set([1, 2, 3, 4])
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> b = Set([3, 4, 5, 6])
Set{Int64} with 4 elements:
  5
  4
  6
  3

julia> c = intersect(a, b)
Set{Int64} with 2 elements:
  4
  3

julia> c = a ∩ b
Set{Int64} with 2 elements:
  4
  3

12 差集合

差集合を求めるには、setdiff 関数を使う。

setdiff 関数は、第1引数の集合には含まれていて、第2引数の集合には含まれていない値を返す。

julia> a = Set([1, 2, 3, 4])
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> b = Set([3, 4, 5, 6])
Set{Int64} with 4 elements:
  5
  4
  6
  3

julia> c = setdiff(a, b)
Set{Int64} with 2 elements:
  2
  1

julia> c = setdiff(b, a)
Set{Int64} with 2 elements:
  5
  6

13 空の集合

空の集合を定義することができる。

julia> a = Set()
Set{Any}()

14 要素の追加

集合に要素を追加するには、push! 関数を使う。

julia> a = Set()
Set{Any}()

julia> push!(a, 1)
Set{Any} with 1 element:
  1

julia> push!(a, 2)
Set{Any} with 2 elements:
  2
  1

15 要素の削除

集合から要素を削除するには、pop! 関数を使う。

julia> a = Set([1, 2, 3])
Set{Int64} with 3 elements:
  2
  3
  1

julia> pop!(a, 1)
1

julia> pop!(a, 3)
3

julia> a
Set{Int64} with 1 element:
  2

16 Base.sum

Base.sum 関数を使って、Base.Set 各要素の合計値を求めることができる。

julia> sum(Set([1, 2, 3]))
6

17 参考文献

JuliaLang.org contributors 2023. Julia Documentation