Pythonの辞書メソッド徹底解説:update()・has_key()・fromkeys()の使い方
Pythonの辞書(dict)は、最も頻繁に使用されるコレクション型データの一つです。キーと値のペア(key-value pair)で構成され、キーにはインデックスが割り当てられますが、値には必ずしも割り当てられません。Pythonには、さまざまなプログラムで辞書を簡単に扱えるようにする組み込み関数が数多く用意されています。この記事では、その中からupdate()、has_key()、fromkeys()という3つの組み込みメソッドについて詳しく解説します。
update()メソッド
update()メソッドは、2つ目の辞書の項目を1つ目の辞書にマージ(統合)することで、新しい項目を追加します。
構文
dict1.update(dict2) # dict1 と dict2 は2つの入力辞書です
以下の例では、2つの辞書を扱います。2つ目の辞書の項目が1つ目の辞書に追加されます。マージの効果を確認するためには、2つ目の辞書のキー名は1つ目と異なるものにする必要があります。
実行例
dict1 = {'Place': 'Delhi', 'distance': 137}
dict2 = {'Temp': 41}
dict1.update(dict2)
print(dict1)上記のコードを実行すると、次の結果が得られます。
{'Place': 'Delhi', 'distance': 137, 'Temp': 41}has_key()メソッド
このメソッドは、指定したキーが辞書内に存在するかどうかを確認します。ただし、has_key()はPython 2専用の機能であり、Python 3では利用できません。Python 3環境では、代わりに「in」演算子を使用してください。
構文
dict.has_key(key)
以下の例では、指定した辞書内に特定のキーが存在するかどうかを確認しています。
実行例
dict1 = {'Place': 'Delhi', 'distance': 137}
dict2 = {'Temp': 41}
print(dict1.has_key('Place'))
print(dict2.has_key('Place'))上記のコードを実行すると、次の結果が得られます。
出力
True False
なお、Python 3では同じ処理を次のように「in」演算子で記述できます。
print('Place' in dict1) # True
print('Place' in dict2) # Falsefromkeys()メソッド
このメソッドは、シーケンス(リストやタプルなど)の値を辞書に変換します。さらに、すべてのキーに共通して設定されるデフォルト値を指定することも可能です。値を指定しない場合は、各キーの値としてNoneが設定されます。
構文
dict.fromkeys(seq[, value])
以下の例では、シーケンスから辞書を作成し、値を指定した場合と指定しない場合の両方を確認しています。
実行例
seq = ['Distance', 'Temp', 'Humidity'] dict = dict.fromkeys(seq) print(dict) dict = dict.fromkeys(seq, 15) print(dict)
上記のコードを実行すると、次の結果が得られます。
出力
{'Distance': None, 'Temp': None, 'Humidity': None}
{'Distance': 15, 'Temp': 15, 'Humidity': 15}-
Pythonでタプルを辞書に変換する方法【基本とキー・値の入れ替え】
Pythonでは、dict()関数を使うことで、タプルから辞書オブジェクトを簡単に作成できます。この関数は「タプルのタプル」(ネストされたタプル)を引数として受け取ります。各内側のタプルには、キーと値のペアが含まれている必要があります。 基本的な変換方法 最もシンプルなのは、キーと値のペアを持つタプルをそのままdict()に渡す方法です。 >>> t = ((1, a), (2, b)) >>> dict(t) {1: a, 2: b} この例では、タプル((1, a), (2, b))の各要素が、それぞれ辞書のキーと値として解釈され、結果として{1: a,
-
Pythonで辞書の値を更新する方法|update()メソッドの使い方を解説
Pythonの組み込み型である辞書(dict)クラスには、update()メソッドが標準で用意されています。このメソッドは、別の辞書オブジェクトを引数として受け取り、呼び出し元の辞書にマージ(統合)することができます。 基本構文 D1.update(D2) 動作の仕組み D2の内容がD1に統合されます。このとき、キーの有無によって以下のように挙動が変わります。 D2のキーがD1にすでに存在する場合:そのキーの値がD2の値で上書き(更新)されます。 D2のキーがD1に存在しない場合:新しいキーと値のペアとしてD1に追加されます。 実行後、D1は更新された内容を保持します。 使用例 >&