Python辞書のhas_key()メソッドの使い方とPython 3での代替方法
Pythonで辞書(dict)を扱っていると、特定のキーがその辞書内に存在するかどうかを確認したい場面によく出会います。辞書は要素が順序付けられていないデータ構造のため、リストのように位置(インデックス)から値を探すことができません。そこで、Pythonの標準ライブラリにはhas_key()というメソッドが用意されており、辞書内にキーが存在するかどうかを簡単に調べることができます。
ただし、このメソッドはPython 2.x系でのみ利用可能であり、Python 3.x系では削除されている点に注意が必要です。
構文
has_key()メソッドの基本構文は以下の通りです。
dict.has_key(KeyVal) KeyValには、検索対象となるキーの値を指定します。 結果はTrue(存在する)またはFalse(存在しない)として返されます。
数値型キーの使用例
キーとして数値を使用している場合は、数値をそのままhas_key()に渡して判定できます。
サンプルコード
Dict = { 1: 'python', 2: 'programming', 3: 'language' }
print("Given Dictionary :")
print(Dict)
# has_key()
print(Dict.has_key(1))
print(Dict.has_key(2))
print(Dict.has_key('python'))上記のコードを実行すると、以下のような結果が出力されます。
Given Dictionary :
{1: 'python', 2: 'programming', 3: 'language'}
True
True
Falseこの例では、1と2は辞書のキーとして存在するためTrueが返されますが、'python'は値でありキーではないためFalseとなります。has_key()はあくまで「キー」の存在を調べるメソッドだという点に注意しましょう。
文字列キーの使用例
キーとして文字列を使用している場合は、引用符で囲んだ文字列をhas_key()に渡します。
サンプルコード
Dict = { 'A': 'Work', 'B': 'From', 'C': 'Home' }
print("Given Dictionary :")
print(Dict)
# has_key()
print(Dict.has_key('From'))
print(Dict.has_key('A'))上記のコードを実行すると、以下のような結果が出力されます。
Given Dictionary :
{'A': 'Work', 'C': 'Home', 'B': 'From'}
False
True'From'はキーではなく値であるためFalseとなり、キーとして存在する'A'に対してはTrueが返されます。
Python 3での代替方法:in演算子を使おう
前述の通り、has_key()メソッドはPython 3.xでは廃止されました。Python 3でキーの存在を確認するには、in演算子を使用するのが標準的かつ推奨される方法です。
Dict = { 1: 'python', 2: 'programming', 3: 'language' }
print(1 in Dict) # True
print(4 in Dict) # False
print(1 not in Dict) # False(not inで「存在しないこと」の確認も可能)in演算子は記述が簡潔で可読性が高く、パフォーマンスの面でも優れています。レガシーなPython 2コードを扱う場合以外は、has_key()の代わりに必ずin演算子を使用するようにしましょう。
-
Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例
Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実
-
Pythonで辞書(dict)のすべてのキーを取得・表示する方法
Pythonでは、辞書(dict)オブジェクトが持つ keys() メソッドを使うことで、すべてのキーを簡単に取得できます。このメソッドは辞書内の全キーを含むビューオブジェクト(dict_keys)を返します。 keys() メソッドでキーを取得する まずは基本的な使い方を見てみましょう。次の例では、3つのキーと値を持つ辞書から、すべてのキーを取り出しています。 >>> D1 = {1:a, 2:b, 3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3]