BACK

HOOPSII MOBILE

HOME

第16回 セットの作成


1.セットとは

セットとは、重複要素のない集合を表します。
次の特徴があります。

2.iterableオブジェクトから作成

iterableオブジェクト(リスト、タプルなど)から作成するには、次の構文を使用します。

set(iterableオブジェクト)
frozenset(iterableオブジェクト)

変更可能なセットを作成する場合は、setを使用します。
変更不可能なフローズンセットを作成する場合は、frozensetを使用します。
使用方法は、次のプログラムを見てください。

# coding: utf-8

# 変更可能なセットを作成
a = set([2, 4, 6])
print(a)

# 変更不可なフローズンセットを作成
b = frozenset([2, 4, 6])
print(b)

# 空のセットを作成
c = set()
print(c)

実行結果

set([2, 4, 6])
frozenset([2, 4, 6])
set([])

3.集合演算子を使って作成

セットは、要素に対して集合演算を使用できます。
集合演算子を使用すると、和集合(|)、共通集合(&)、差集合(-)、対称差(^)を行えます。
ただし、集合演算子を使用する場合は、セット型同士である必要があります。
使用方法は、次のプログラムを見てください。

# coding: utf-8

a = set([1, 3, 5])
b = set([1, 5, 10])

# 和集合
print(a | b)

# 共通集合
print(a & b)

# 差集合
print(a - b)

# 対称差
print(a ^ b)

実行結果

set([1, 3, 5, 10])
set([1, 5])
set([3])
set([10, 3])

4.Javaとの比較

Javaのソースコードとの比較をします。
Pythonのsetの機能は、Javaでは、java.util.HashSetクラスに似ているため、
このクラスとの比較をします。
Javaを知っている方は参考にしてください。

Python Java
# coding: utf-8

# 空のセットを作成
a = set()
print(a)

# リストからセットを作成
list = ['a', 'b', 'c']
b = set(list)
print(b)
import java.util.ArrayList;
import java.util.HashSet;
public class Java16 {
    public static void main(String[] args) {
        // 空のセットを作成
        HashSet a = new HashSet()
;         System.out.println(a);

        // ArrayListからセットを作成
        ArrayList list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");

        HashSet b = new HashSet(list);
        System.out.println(b);
    }
}

Copyright (C) 2011 ほぷしぃ. All Rights Reserved.