バリケンのPython日記 RSSフィード

2008-07-25

[] 集合型  集合型 - バリケンのPython日記 を含むブックマーク はてなブックマーク -  集合型 - バリケンのPython日記  集合型 - バリケンのPython日記 のブックマークコメント

Pythonには集合型(set型)があるよ。

集合型(set型)とは、重複する要素をもたない、順序づけられていない要素の集まりのことだよ。

集合型(set型)の値を作るには、set(集合の元となるシーケンス)とするよ。生成元のシーケンスに重複する要素があると、それはひとつにまとめられるよ。

>>> set([1,2,3])
set([1, 2, 3])
>>> set([1,2,1])
set([1, 2])
>>> 

「値 in 集合」で、値が集合の要素かどうかのチェックができるよ。

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruits = set(basket)
>>> fruits
set(['orange', 'pear', 'apple', 'banana'])
>>> 'orange' in fruits
True
>>> 'crabgrass' in fruits
False
>>>

集合同士の演算もできるよ。集合の和は「|」で求められるよ。

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
set(['a', 'r', 'b', 'c', 'd'])
>>> b
set(['a', 'c', 'z', 'm', 'l'])
>>> a | b
set(['a', 'c', 'b', 'd', 'm', 'l', 'r', 'z'])
>>>

集合の差は「-」で求められるよ。

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a - b
set(['r', 'b', 'd'])
>>>

集合の積は「&」で求められるよ。

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a & b
set(['a', 'c'])
>>> 

排他的論理和は「^」で求められるよ。

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a ^ b
set(['b', 'd', 'm', 'l', 'r', 'z'])
>>> 
トラックバック - http://python.g.hatena.ne.jp/muscovyduck/20080725