Python では、ディクショナリは、マップのように値を管理および保存するために使用できる順序のないデータ値のセットです。項目として特定の値のみを保持できる他のデータ型とは異なり、Dictionary はキーと値のペアを保持できます。辞書には、効率を高めるためにキーと値のペアが含まれています。辞書キーではポリモーフィズムは許可されません。辞書は、一連のエントリを中括弧で囲み、カンマで区切ることによって Python で構築されます。ディクショナリには値のペアが格納され、その 1 つはキーであり、もう 1 つは Key:value ペア要素です。
ディクショナリでは、値は任意のデータ構造にすることができ、複製することもできますが、不変でなければならないキーはコピーできません。
辞書内のキーを確認する
Python では、辞書はキーと値のペアを格納する便利なデータ構造です。プログラミングでは、辞書から特定のキーの値を取得することが頻繁に必要になります。ただし、辞書内に特定のキーが存在することが実際には常に保証されているわけではありません。したがって、値を取得する前に、キーがディクショナリに属しているかどうかを再確認することをお勧めします。
has_key() の使用
指定されたキーが辞書で見つかった場合、 has_key() メソッドは true を返します。それ以外の場合は false を返します。
Python 3 ではこれが非推奨になりました。この方法は、Python 3 よりも古いバージョンで実行している場合に使用できます。
cmdでPythonのバージョンを確認するには、以下のコマンドを使用します。
コード:
import sys print(sys.version) Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.has_key(key_to_check_for): print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
出力:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [37], in () 1 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} 2 key_to_check_for = '2' ----> 3 if Animals.has_key(key_to_check_for): 4 print('Key exists in Animals') 5 else: AttributeError: 'dict' object has no attribute 'has_key'
このコードは Python 3 で実行されたため、エラーが表示されます。
if-in ステートメント
このメソッドは、if-in ステートメントを使用して、ディクショナリ内に特定のキーが存在するかどうかを確認します。会員制オペレーターを採用しております で 、 このように。この演算子は、ある値が別の値に属するかどうかを判断するために使用されます。ブール値の結果が得られます。
コード:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} Key = '2' if '2' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
出力:
「プリムのアルゴリズム」
Key exists in Animals
次に、否定的なケースを見てみましょう。
コード:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} if '4' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
出力:
There is no key '4' in Animals
同様に、 ありませんで 演算子を使用すると、辞書内のキーが存在しないかどうかを確認できます。ただし、次のことに留意してください。 で 操作では大文字と小文字が区別されるため、すべてのキーの大文字と小文字が同じであることを確認するか、 より高い() または より低い() 方法。
コード:
Animals = {'one': 'Cat', 'two':'Rat', 'three':'Bat'} setting_case = set(key.upper() for key in Animals) key_to_check_for = 'two' if key_to_check_for.upper() in setting_case: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
出力:
Key exists in Animals
get() メソッドの使用
get() メソッドは、ディクショナリ内の関連キーの値を渡します。キーが存在しない場合は、None またはデフォルト値 (指定されている場合) が返されます。このメソッドにキーを渡すと、指定された Python 辞書にキーが存在するかどうかを確認できます。
get() 関数の構文は次のとおりです。
dict_name.get(keyname, value)
ここで、dict name は使用する辞書のタイトルです。
春と春のMVC
パラメーター
コード:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
出力:
Key exists in Animals
ここで否定的なケースを考えてみましょう。
コード:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '5' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
出力:
There is no key '5' in Animals
このメソッドを使用する場合は、None という値のキーがある場合、それは正確ではないことに留意してください。持っていない場合は、このテクニックで十分です。このメソッドによって返された値を使用したい場合は、それらを変数に保存できます。
Keys() の使用
の キー() 関数と「in」演算子を使用して、キーが辞書に存在するかどうかを確認できます。の キー() メソッドは辞書内のキーのリストを返し、「if, in」ステートメントは指定されたキーがリストにあるかどうかをチェックします。キーが存在する場合は True を返します。それ以外の場合は False を返します。
入力
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if key in Animals.keys(): print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
出力:
Key exists in Animals
辞書に複数のキーがあるかどうかを確認します。
1 つのステートメントで、辞書に複数のキーが含まれているかどうかを確認することもできます。使用できます 全て() 関数をリスト内包表記と組み合わせて、辞書に多くのキーが含まれているか、すべてのキーが含まれているかを確認します。
コード:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if all(key in Animals for key in ('1','5')): print('All keys exists in Animals') else: print('Not all the keys are there in Animals')
出力:
Not all the keys are there in Animals
辞書のリストを調べてキーが存在するかどうかを確認します
辞書のリストは、リスト内で見つかる辞書のコレクションです。
- list_of_dictionary - 3 つの辞書オブジェクトを含むリスト。
- 辞書のリスト内のキーのキーの「b」 - リスト内包表記を使用して、辞書のリスト内のキーのリストを生成します。次に、リストで利用可能なものがあるかどうかを確認します。 'b' であるキーについては True を返し、それ以外のキーについては False を含むリストを返します。
- any() - リスト内包表記によって提供される True/False リストを検証します。キー「b」は、少なくとも 1 つの True を含む場合、辞書リストに存在します。 「if」ブロックは、True を返した後に実行されます。それ以外の場合は、「else」ブロックが実行されます。
コード:
list_of_dictionaries = [{'a': 'A'}, {'b': 'B'}, {'c': 'C'}] if any('b' in keys for keys in list_of_dictionary): print('key exists in list_of_dictionaries') else: print('key does not exists in list_of_dictionaries')
出力:
Key exists in list_of_dictionaries
キーが JSON 辞書にあるかどうかを確認する
JSON は「JavaScript Object Notation」の略で、値を保存するキーと値のペアです。
の json.loads() メソッドを使用して、JSON テキストから辞書を構築できます。
次に、以下に示すように、「if および in」を使用して、キーが JSON 辞書に存在するかどうかを確認できます。
入力
文字列Javaを反転する
import json json_str = '''{'a': 'A', 'b': 'B', 'c': 'C'}''' json_dictionary = json.loads(json_str) if 'c' in json_dictionary: print('Key is present in the JSON dictionary') else: print('Key is not present in JSON dictionary')
出力:
Key is present in the JASON dictionary
結論
要約すると、いくつかの方法を使用してキーが辞書にあるかどうかを確認する方法を学びました。また、キーが辞書にあるかどうかを確認するために、これらのメソッドをさまざまなインスタンスに適用する方法も学びました。また、各オプションにかかる時間がどのように異なるのかも確認しました。