Pythonのディクショナリ
PythonのディクショナリはJavaでいうとMapのようなものです。詳しい使い方について紹介していきます。
基本的な使い方
d ={'x':1,'y':2} print(type(d),d) #<class 'dict'> {'x': 1, 'y': 2} #要素の取り出し print(d['x']) #1 #要素の変更 d['x'] =100 print(d['x']) #100 d['x'] ='a' print(d['x']) #a #要素の追加 d['z'] =3 print(d) #{'x': 'a', 'y': 2, 'z': 3} #dictを使用した作成 d=dict(a =1,b = 2) print(d) #{'a': 1, 'b': 2}
keys()とvalues()
keys()関数を使用してディクショナリのキーを、values()関数を使用してディクショナリの値を取り出すことが出来る。
d={'x': 10, 'y': 20} #キーを取り出す print(d.keys()) #dict_keys(['x', 'y']) #値を取り出す print(d.values()) #dict_values([10, 20])
update()
update()関数でディクショナリ1をディクショナリ2で更新した場合、ディクショナリ1とディクショナリ2で重複するキーの値は更新され、ディクショナリ2に固有のキーは新規で追加されることになる。
d={'x': 10, 'y': 20} d2={'x':100,'z':30} d.update(d2) #'x'が重複しているため100で更新されるdには'z'がないため追加される print(d) #{'x': 100, 'y': 20, 'z': 30}
ディクショナリのコピー
d={'x': 10, 'y': 20} #ディクショナリは参照渡しされる l = d #値を変更すると l['x'] =100 #元のリストの値ごと変更されてしまう print(d,l) #{'x': 100, 'y': 20} {'x': 100, 'y': 20} #copy()関数を使用することでリストのポインタを新規に作成することが出来る l = d.copy() #値を変更すると l['x'] =200 #コピー先のリストのみ値が変更される print(d,l) #{'x': 100, 'y': 20} {'x': 200, 'y': 20}
その他の関数
d={'x': 100, 'y': 20,'z':30} #要素の取り出し print(d.get('x')) #100 d.pop('x') print(d) #{'y': 20, 'z': 30} #要素の削除 del d['y'] print(d) #{'z': 30} d.clear() print(d) #{} d={'x': 100, 'y': 20,'z':30} #キーがあるかを判定する r = "y" in d print(r) #True