English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pythonには、ディクショナリと呼ばれるコンテナがあります。ディクショナリでは、キーを値にマッピングできます。ディクショナリを使用すると、恒常時間で値にアクセスできますが、指定されたキーが存在しない場合、エラーが発生する可能性があります。
このセクションでは、このようなエラーをどのように処理するかを見てみましょう。失ったキーにアクセスしようとすると、このようなエラーが返されることがあります。
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()
MethodはKeyErrorを処理getメソッドを使用してキーを確認することができます。このメソッドには2つのパラメータがあります。1つ目はキー、2つ目はデフォルト値です。キーを見つけると、それに対応する値が返されますが、キーが存在しない場合、デフォルト値が返されます。このデフォルト値は、2つ目のパラメータとして渡されます。
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} print(country_dict.get('Australia', '見つかりません')) print(country_dict.get('Canada', '見つかりません'))
出力結果
AU 見つかりません
setdefault()
MethodはKeyErrorを処理このsetdefault()
メソッドは以下のように似ています。get()
メソッド。それも2つの引数が必要です。get()
。最初のものはキー、次のものはデフォルトの値です。このメソッドの唯一の違いは、キーが欠けている場合、デフォルトの値を持つ新しいキーを追加することです。
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} country_dict.setdefault('Canada', '存在しません') # カナダに対するデフォルトの値を設定 print(country_dict['Australia']) print(country_dict['Canada'])
出力結果
AU 存在しません
defaultdictはコンテナです。それはPythonのcollectionsモジュールに位置しています。defaultdictは引数としてデフォルトのファクトリを使用します。最初はデフォルトのファクトリは0(整数)です。キーが存在しない場合、デフォルトのファクトリの値を返します。
私たちは一度ずつメソッドを指定する必要はありませんので、辞書オブジェクトにより速いメソッドを提供します。
import collections as col #デフォルトのファクトリを文字列'キーは存在しません'で設定 country_dict = col.defaultdict(lambda: 'キーは存在しません') country_dict['India'] = 'IN' country_dict['Australia'] = 'AU' country_dict['Brazil'] = 'BR' print(country_dict['Australia']) print(country_dict['Canada'])
出力結果
AU キーは存在しません