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

Python辞書で欠落しているキーを処理する


Pythonには、ディクショナリと呼ばれるコンテナが1つあります。辞書では、キーをその値にマップできます。辞書を使用すると、値に一定時間でアクセスできます。ただし、指定されたキーが存在しない場合、エラーが発生する可能性があります。

このセクションでは、これらの種類のエラーを処理する方法を説明します。欠落しているキーにアクセスしようとすると、次のようなエラーが返される場合があります。

サンプルコード

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # This will return error

出力

AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-input-2-a91092e7ee85> in <module>()
      2 
      3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# This will return error

KeyError: 'Canada'

get()メソッドを使用してKeyErrorを処理する

getメソッドを使用してキーをチェックできます。このメソッドは2つのパラメーターを取ります。 1つ目はキーで、2つ目はデフォルト値です。キーが見つかると、そのキーに関連付けられている値が返されますが、キーが存在しない場合は、2番目の引数として渡されるデフォルト値が返されます。

サンプルコード

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict.get('Australia', 'Not Found'))
print(country_dict.get('Canada', 'Not Found'))

出力

AU
Not Found

setdefault()メソッドを使用してKeyErrorを処理する

このsetdefault()メソッドは、get()メソッドに似ています。また、get()のように2つの引数を取ります。 1つ目はキーで、2つ目はデフォルト値です。この方法の唯一の違いは、キーが欠落している場合、デフォルト値で新しいキーが追加されることです。

サンプルコード

country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
country_dict.setdefault('Canada', 'Not Present') #Set a default value for Canada
print(country_dict['Australia'])
print(country_dict['Canada'])

出力

AU
Not Present

defaultdictの使用

defaultdictはコンテナです。 Pythonのコレクションモジュールにあります。 defaultdictは、デフォルトのファクトリを引数として取ります。最初、デフォルトのファクトリは0(整数)に設定されています。キーが存在しない場合は、デフォルトのファクトリの値を返します。

メソッドを何度も指定する必要がないため、ディクショナリオブジェクトのメソッドが高速になります。

サンプルコード

import collections as col
#set the default factory with the string 'key not present'
country_dict = col.defaultdict(lambda: 'Key Not Present')
country_dict['India'] = 'IN'
country_dict['Australia'] = 'AU'
country_dict['Brazil'] = 'BR'
print(country_dict['Australia'])
print(country_dict['Canada'])

出力

AU
Key Not Present

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

  2. Python辞書

    辞書は、Pythonで使用する主なマッピングタイプです。このオブジェクトは、Javaのマップに似ています。 Pythonでは、中括弧{}を使用して辞書リテラルを作成します。 、コロンを使用してキーを値から分離する: 、およびコンマを使用してキーと値のペアを区切る, 。 辞書の作成方法 datedict = { date: 13, month: January, year: 1970 } print(datedict) 出力: {date: 13, month: January, year: 1970} 辞書アイテムにアクセスする方法 角かっこ[]内のキー名を参照することで