集合と辞書
集合型
集合 (set) を扱うためのデータ型です。
集合とは、重複する要素をもたず、順序づけられていない要素の集まりのことです。
中括弧({})、または set() 関数は set を生成するために使用することができます。 ※注意:空集合を作成するためには {} ではなく set() を使用しなければなりません。
code: python
>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>> basket
{'banana', 'orange', 'apple', 'pear'}
>> 'orange' in basket
True
>> 'peach' in basket
False
Set オブジェクトは、和 (union)、積 (intersection)、差 (difference)、対称差 (symmetric difference) といった数学的な演算もサポートしています。 code: python
>> a = set('abcdefg')
>> b = set('AbCdEfG')
>> a
{'f', 'c', 'a', 'b', 'g', 'e', 'd'}
>> b
{'C', 'f', 'b', 'G', 'E', 'A', 'd'}
>> a - b # a にあって b にないもの
{'e', 'c', 'a', 'g'}
>> a | b # a or b a もしくは b にあるもの 和
{'f', 'c', 'C', 'a', 'b', 'g', 'G', 'E', 'e', 'A', 'd'}
>> a & b # a and b a にも b にもあるもの 積
{'f', 'b', 'd'}
>> a ^ b # a もしくは b にあって、両方にあるものを除いたもの
{'c', 'a', 'E', 'g', 'C', 'G', 'e', 'A'}
辞書型
リストやタプルがある範囲の数でインデクスされているのに対して、辞書型はキー(Key)を使ってインデックスされます。
辞書のKeyに使えるものは不変型(immutable) でなければいけない制約があります。 つまり、Keyとして使えるものは次のものです。
文字列
数値
タプル
Python の辞書は集合と同様に中括弧({}) もしくは dict() で生成できます。
code: python
>> tel = {'jack': 4098, 'sape': 4139}
>> tel
{'jack': 4098, 'sape': 4139}
>> countries = dict(日本='JP', アメリカ='US', 中国='CN')
>> countries
{'日本': 'JP', 'アメリカ': 'US', '中国': 'CN'}
辞書オブジェクトにKeyでアクセスすることで値(Value) を取得したり置き換えたりできます。
code: python
>> tel = {'jack': 4098, 'sape': 4139}
4098
5489
辞書にないKeyでValueを与えた場合は辞書に追加されます。
code: python
>> tel = {'jack': 4098, 'sape': 4139}
>> tel
{'jack': 4098, 'sape': 4139}
>> tel
{'jack': 4098, 'sape': 4139, 'guido': 4127}
辞書オブジェクトのKeyからリストを作るためには次のように記述します。
code: python
>> list(tel.keys())
>> sorted(tel.keys())
Keyが存在するかどうは次のようにしてわかります。
code: python
>> 'jack' in tel
True
>> 'mick' in tel
False