Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python – キーがリストと辞書の両方に存在する場合、その値を抽出する方法

リストと辞書の両方に特定のキーが存在するかどうかを確認し、存在する場合にそのキーに対応する値を抽出したい場面はよくあります。Pythonでは、シンプルな反復処理(イテレーション)と組み込み関数「all()」を組み合わせることで、この処理を簡潔に実装できます。

サンプルコード

以下に具体的な実装例を示します。

my_list = ["Python", "is", "fun", "to", "learn", "and", "teach", 'cool', 'object', 'oriented']

my_dictionary = {"Python" : 2, "fun" : 4, "learn" : 6}

K = "Python"
print("The value of K is ")
print(K)

print("The list is : ")
print(my_list)

print("The dictionary is : ")
print(my_dictionary)

my_result = None
if all(K in sub for sub in [my_dictionary, my_list]):
   my_result = my_dictionary[K]

print("The result is : ")
print(my_result)

実行結果

The value of K is
Python
The list is :
['Python', 'is', 'fun', 'to', 'learn', 'and', 'teach']
The dictionary is :
{'Python': 2, 'fun': 4, 'learn': 6}
The result is :
2

コードの解説

  • まず、文字列のリストを定義し、コンソールに表示します。

  • 次に、値を持つ辞書を定義し、同様にコンソールへ出力します。

  • 検索対象となるキー「K」を定義し、画面に表示します。

  • 結果を格納する変数には、初期値として「None」を設定しておきます。

  • 「all()」関数とジェネレータ式による反復処理を使い、キーがリストと辞書の両方に存在するかどうかを一括で判定します。

  • 条件が満たされた場合のみ、辞書から該当するキーの値を取り出して変数に代入します。

  • 最後に、抽出した値をコンソールに出力します。

補足:よりシンプルな書き方

「all()」を使わず、「in」演算子を直接組み合わせて次のように記述することも可能です。

if K in my_list and K in my_dictionary:
   my_result = my_dictionary[K]

この方法でも同じ結果が得られます。チェック対象のデータ構造が増える場合は「all()」の方が拡張性に優れ、単純な比較であれば「and」による記述の方が直感的です。用途に応じて使い分けるとよいでしょう。

  1. Pythonの辞書にキーと値のペアを追加する方法を徹底解説

    Pythonの辞書(dict)は、キーと値のペアで構成されるコレクションです。すでに定義済みの辞書に対して、新しいキーと値のペアを追加する場面は開発の中で非常によくあります。この記事では、代表的な3つの追加方法を具体例とともにわかりやすく解説します。1. 新しいキーを添字として代入する最もシンプルな方法は、新しいキーを角括弧(添字)で指定し、そこに値を代入する書き方です。既存のキーを指定すれば値が上書きされ、存在しないキーを指定すれば新しい要素が追加されます。コード例CountryCodeDict = {India: 91, UK: 44, USA: 1} print(CountryCodeD

  2. Pythonの辞書(dict)で特定のキーの値を取得・出力する方法

    Pythonの辞書(dict)は、キーと値のペアを格納するコレクションです。特定のキーに関連付けられた値を取得したい場合は、get()メソッドを使うのが便利です。get()メソッドを使って値を取得するget()メソッドにキーを渡すと、そのキーに対応する値が返されます。>>> D1 = {a: 11, b: 22, c: 33} >>> D1.get(b) 22角括弧([])を使って値を取得するまた、リストと同じように、角括弧の中にキーを指定することでも値を取得できます。>>> D1[c] 33get()メソッドと角括弧の違い両者の大きな違い