- トップページ
- 特集PC技術
- Pythonを学ぼう
- 第16回 セットの作成
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