Python3メモ⑨(辞書型、集合型)

辞書型 (dict)

辞書型は、他のプログラム言語では連想配列と呼ばれているもので、キーと値がペアになったものが一つの要素となっています。
辞書型は順序付けされていません。また、キーは重複しません。
値には色々なデータ型が入れられますが、キーは違います。

キーは何らかの変更不能な型になります。文字列、数値は常にキーにすることができます。タプルは、文字列、数値、その他のタプルのみを含む場合はキーにすることができます。
https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries

表記方法

波括弧{}で括って、その中にコロンで区切られたキーと値がワンセットになっていて、そのワンセットごとにカンマで区切ります。

{“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}

初期化

空の辞書を作成。
a = {}
または
a = dict()

最初から要素を入れた辞書
a = {“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}

要素へ追加

空の辞書を作り
a = {}
キーを指定して追加
a[“キー1”] = “値1”
a[“キー2”] = “値2”
重複しないので、すでにあるキーを指定した場合、上書きされる
a[“キー1”] = “値3”

結果、変数 a はこうなりました。
{‘キー1’: ‘値3’, ‘キー2’: ‘値2’}

要素へのアクセス

a = {“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}
print(a[“キー1”])
結果
値1

キーを指定すると、値が得られます。
存在しないキーを指定するとエラーになります(KeyError)。

要素数取得

len関数が使えます。

a = {“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}
print(len(a))

結果
3

ループ

forの変数にはキーが入ります。
値を取得するには、辞書変数[キー]で行います。

キー1 値1
キー2 値2
キー3 値3

items(), keys(), values()メソッドを使用した場合。

キー1 値1
キー2 値2
キー3 値3
dict_items([(‘キー1’, ‘値1’), (‘キー2’, ‘値2’), (‘キー3’, ‘値3’)])
キー1
キー2
キー3
dict_keys([‘キー1’, ‘キー2’, ‘キー3’])
値1
値2
値3
dict_values([‘値1’, ‘値2’, ‘値3’])

dict_***という型はviewと呼ばれるタイプらしいです。ループのたびに次の値を返します。

in演算子

指定したキーまたは値が含まれているかどうかTrueかFalseを返します。
keysメソッドまたはvaluesメソッドで、一度キーのみ、または値のみにしておいてから、in演算子を使います。

キーの場合
a = {“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}
print(“キー2” in a.keys())
結果
True

値の場合
a = {“キー1″:”値1″,”キー2″:”値2″,”キー3″:”値3”}
print(“値3” in a.values())
結果
True

集合型(set)

集合型は、順番を保持しないで、重複も無いデータの集まりです。集合の演算もできます。

空の集合を生成

a = set()

表記方法

波括弧{}で括ってデータごとにカンマで区切ります。
{1,2,3}

キャストして生成

要素の追加

空の集合を作り
a = set()
追加
a.add(3.14)
a.add(1)
a.add(“文字”)
print(a)
結果
{1, 3.14, ‘文字’}

要素にアクセス

リストのようにインデックスで参照できません。
a = {‘apple’, ‘orange’, ‘banana’}
print(a[0])
エラーになる。

forを使って各要素にアクセスします。

結果
orange
apple
banana
順番は適当になります。

集合の演算

記号(| & – ^ )を用いて、和集合、差集合、積集合などを簡単に求められます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする