特集PC技術

Pythonを学ぼう

 

第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);
    }
}

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1774

サイト内検索

twitterTwitter

最新ブログ記事

2015年06月13日

JavaScriptの情報室

4冊目 ハイブリッドアプリが作れる。tabris.js

2014年10月16日

C++言語学習録

第3回 ファイルを分割してみよう

2014年10月09日

C++言語学習録

第2回 オブジェクト指向の復習

2014年10月02日

C++言語学習録

第1回 C++の開発環境を整える

2014年09月25日

Swiftを試してみようなう。

第4回 Swiftでクラスを使うなう。

ISL 情報戦略研究所

pagetopこのページの先頭へ戻る